#encoding:utf-8
import requests
from bs4 import BeautifulSoup
import urllib.request
import random#设置header 防止产生403forbidden
my_headers = ["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36","Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14","Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)",'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11','Opera/9.25 (Windows NT 5.1; U; en)','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)','Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)','Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12','Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9',"Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Ubuntu/11.04 Chromium/16.0.912.77 Chrome/16.0.912.77 Safari/535.7","Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0 "
]#抓取网页信息
def get_content(url, headers):'''''@获取403禁止访问的网页'''random_header = random.choice(headers)req = urllib.request.Request(url)req.add_header("User-Agent", random_header)req.add_header("Host", "lishi.tianqi.com")req.add_header("Referer", "http://lishi.tianqi.com/")req.add_header("GET", url)content = urllib.request.urlopen(req).read()return content# 三个月份天气的链接
urls = ["http://lishi.tianqi.com/wuhan/201707.html","http://lishi.tianqi.com/wuhan/201706.html","http://lishi.tianqi.com/wuhan/201705.html"]file = open('wuhan_weather.csv','w')
for url in urls:response=get_content(url, my_headers)soup = BeautifulSoup(response, 'html.parser')weather_list = soup.select('ul[class="thrui"]')for weather in weather_list:ul_list = weather.select('li')for ul in ul_list:li_list= ul.select('div')str=""for li in li_list:str += li.string + ','file.write(str+'\n')
file.close()

爬取网页的dom结构:

通过上述结构我们可以看见,我们只需要借助BeatuifulSoup工具库的select功能便可以获取到特定dom结构中的内容。对于此处的数据我们只需要三次select即可,select的dom元素依次是ul[class=“thrui”]、li和div便能获取到所需要的数据。

爬取结果如下图所示:

python爬虫获取天气数据相关推荐

  1. python Chrome + selenium自动化测试与python爬虫获取网页数据

    一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...

  2. python爬虫获取基金数据2

    用sklearn分析基金数据<1> python爬虫获取基金数据<2> 数据预处理:数据清洗.生成样本数据<3> 用sklearn训练样本数据<4> 用 ...

  3. Python / Micropython 获取天气数据

    来观察一下这个带参数的网址,注意参数的语法: http://api.openweathermap.org/data/2.5/weather?q=Chengdu,CN&APPID=xxxxxx ...

  4. python如何过获取双色球信息_【编程】Python爬虫获取双色球数据

    #爬虫获取双色球的全部开奖数据 #使用class, #格式: import urllib.request import platform from bs4 import BeautifulSoup i ...

  5. Python数据分析挖掘案例:Python爬虫助力疫情数据追踪

    通过学习Python数据分析挖掘案例,可以掌握通过Python爬虫获取的数据进行处理以及可视化分析的主要方法和技能,并为后续相关课程学习及将来从事数据分析工作奠定基础. 新冠病毒疫情在武汉突然爆发,确 ...

  6. python爬虫天气数据_python爬虫:天气数据的分析

    就在前几天还是二十多度的舒适温度,今天一下子就变成了个位数,小编已经感受到冬天寒风的无情了.之前对获取天气都是数据上的搜集,做成了一个数据表后,对温度变化的感知并不直观.那么,我们能不能用python ...

  7. Python爬虫获取文章的标题及你的博客的阅读量,评论量。所有数据写入本地记事本。最后输出你的总阅读量!

    Python爬虫获取文章的标题及你的博客的阅读量,评论量.所有数据写入本地记事本.最后输出你的总阅读量!还可以进行筛选输出!比如阅读量大于1000,之类的! 完整代码在最后.依据阅读数量进行降序输出! ...

  8. python自动获取天气_用python获取天气数据,并作定时播报

    原标题:用python获取天气数据,并作定时播报 数据挖掘入门与实战 公众号: datadw 思路 1.调用和风天气的API,获取天气数据 2.用百度语音API,将天气数据合成语音 3.用树莓派每天早 ...

  9. 我是如何把python爬虫获取到的数据写入Excel的?

    如何将爬虫获取的数据写入Excel,这一点我在爬虫文章几乎都是采用这种方式来进行操作的 写入Excel的目的是为了后续更加方便的使用pandas对数据进行清洗.筛选.过滤等操作. 为进一步数据研究.可 ...

最新文章

  1. TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
  2. 使用postman删除Marketing Cloud里的contact数据
  3. JSON是什么?如何产生的?
  4. 蔡高厅老师 - 高等数学阅读笔记 - 04 - 函数的连续性(18、19、20、21)
  5. linux c++开发_Linux/Windows下进行C/C++开发的差异
  6. php替换局部大小写字母,php替换字符串中的一些字符(区分大小写)的函数str_replace()...
  7. PySpark︱pyspark.ml 相关模型实践
  8. CCLayer中Touch事件(Standard Touch Delegate Targeted Touch Delegate)
  9. 吴恩达(Andrew Ng)——机器学习笔记1
  10. 从照相机到jpeg的流程中分析图像噪声
  11. ChIPQC——对ChIP-seq的质量评估
  12. 微信开发者工具 公众号网页调试的调试器没了?
  13. 乐得瑞专门为笔记本/平板Type-C接口,HOST端解决方案
  14. identifier “ “ is undefined 错误
  15. 【计网】DNS解析 DDNS解决动态公网IP访问
  16. 解决MacBookPro git push提示You hasn‘t joined this enterprise
  17. JS 如何调用高德地图
  18. 2022,世界杯,来了
  19. OMNI.COM The Greatest program in the world
  20. 郎平的与时俱进-《夺冠》观后感

热门文章

  1. startService和bindService的区别
  2. Java修饰符访问权限介绍
  3. RemoteApp Tool(远程控制软件)v6.0.00学习及使用
  4. 励志名言---001
  5. MySQL数据库,从入门到精通:第十二篇——MySQL数据类型详解
  6. MYSQL 查询重复数据
  7. EDW2016|NOSQL异军突起 阿里首发中国企业好声音
  8. golang常用库之- pierrec/lz4包 | lz4命令、lz4压缩算法(高压解速度)
  9. 神机百炼3.52-Prim
  10. Java基础之Collection