# 天气网余姚地区爬虫案例
import requests
from lxml import etree class WeatherSpider: def __init__(self):
self.url = "http://www.weather.com.cn/weather/101210404.shtml"
self.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36"} def get_url_content(self):
return requests.get(self.url, headers=self.headers).content.decode() def get_weather_data(self, html):
tmp_html = etree.HTML(html)
tomorrow_doc = tmp_html.xpath("//div[contains(@class,'con') and contains(@class,'today')]//div[@class='c7d']/ul/li[2]")[0]
weather_data = {}
weather_data["date"] = tomorrow_doc.xpath("./h1/text()")[0]
weather_data["weather"] = tomorrow_doc.xpath("./p[@class='wea']/@title")[0]
weather_data["temperature_max"] = tomorrow_doc.xpath("./p[@class='tem']/span/text()")[0]
weather_data["temperature_min"] = tomorrow_doc.xpath("./p[@class='tem']/i/text()")[0]
weather_data["air_speed"] = tomorrow_doc.xpath("./p[@class='win']/i/text()")[0]
return weather_data def run(self):
# 获取url请求内容
content_html = self.get_url_content()
# 根据url内容获取天气数据
data = self.get_weather_data(content_html)
# 打印爬取的天气数据
print(data) if __name__ == '__main__':
spider = WeatherSpider()
spider.run()

爬取结果

自己刚学爬虫不久,利用爬虫爬取天气网,每次可以抓取第二天的天气状况,一个小demo

最新文章

  1. css实现三角形箭头
  2. python hashlib模块
  3. 炜煌T3POS58微打参数设置方法
  4. 使用最新的“huihui中文语音库”实现文本转语音功能
  5. ssh无法登录linux服务器的解决办法
  6. wireshark: there are no interfaces on which a capture can be done
  7. 进程间通信之XSI IPC
  8. ASP.NET MVC5框架揭秘 学习笔记01
  9. 《Java程序员面试笔试宝典》之Java与C/C++有什么异同
  10. 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
  11. Kettle中spoon.sh在使用时报错
  12. 3-15 JS基础知识02
  13. JS——函数、事件
  14. 【C语言程序】让用户输入一句话,输出这句话中每个单词含有多少个字母
  15. JSP(3)—Cookie和Session
  16. 线程同步——lock锁
  17. Linux VNC server 安装配置
  18. 超全面!UI设计师如何适配2018新款iPhone
  19. 移动端console.log()调试
  20. mfc 函数重载

热门文章

  1. python前后台交互相关配置
  2. selenium的鼠标事件操作
  3. 第十六篇 nginx主配置文件参数解释
  4. python中GraphViz's executables not found的解决方法以及决策树可视化
  5. XSS 1
  6. linux mv命令 cp命令
  7. 什么是this指针?this的几种指向
  8. swing开发一个修改项目数据库连接参数配置文件
  9. UseIIS
  10. 题解 P4568 【[JLOI2011]飞行路线】