前几篇文章介绍了爬取静态网站的主要方法。今天写一个小项目实践一下。本项目可以实现在终端窗口查询全国3400多个区县的当日天气信息和近七天天气信息。 pandas:读取城市ID文件 prettytable:输出ASC风格的表格 bs4:解析网页 selenium:渲染网页,以便爬取动态网页 和其他几个内置库 中国天气网将不同城市的天气信息存储在了不同的网页中,这些网页的url遵循如下规律。 因此我们只需要获取各个城市的id就可以实现得到各个城市的url了。感谢万能的百度,我查到了全国3400多个区县的id。 为了方便查询,我将各个城市与其对应的id保存到了一个.xlsx文件中,需要的朋友可以后台回复”天气预报”获取。 只需要将这个xlsx文件转换为字典,就可以实现根据输入城市名获取城市id的功能。代码如下 近七日天气信息在一个静态网站上。通过观察,可以确定所有需要的信息都在标签 进一步观察该标签下的信息,发现需要的信息分别存储在 找到对应标签,获取近七天每天的信息。 在获取当日天气网站时我发现返回的当日天气信息是空标签。找了点资料后发现原来这个网站是一个动态网站,需要等待JS脚本加载。 爬取动态网页的方法有三种: 本文使用的是第三种方法,实现模拟浏览器行为的工具是Selenium。Selenium 简介: Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持市面上几乎所有的主流浏览器。 选择它的理由当然是因为简单, Selenium可以非常容易的爬取动态网页,并且搜索节点的方法与之前在静态网页中使用的方法一样。运用到爬虫中的思路是: 使用Selenium 渲染网页,解析渲染后的网页源码,或者直接通过Selenium 接口获取页面中的元素。 通过以下代码,我们就获得了某一城市的当日网站的HTML文件。 获取到网页信息后,简单查看就可以找到包含今日天气信息的标签( 仍然可以通过爬取静态网页的方法获得其中的信息。 如果觉得本文还可以,还请各位点个赞。
导语
实现效果
相关模块
获取每个城市网页的url
"https://www.weather.com.cn/weather1d/"+city_id+".shtml"
city_id = pd.read_excel('city_id.xlsx') dict_c = city_id.set_index('City_CN').T.to_dict('list') city = input('输入查询地:') test_id = dict_c[city] test_id.append("".join(filter(str.isdigit, test_id[0]))) print('城市ID:',test_id[1],sep='')
爬取静态网站上的天气信息
<li class = "sky skyid lv">
下。
通过find_all()
方法获取所有这个标签下的信息。html_dizhi = "https://www.weather.com.cn/weather/"+test_id[1]+".shtml" html = urlopen(html_dizhi) obj = bf(html.read(),'html.parser') mes_links = obj.find_all("li", {"class": re.compile('sky skyid lvd')})
h1,p,i
等标签下。for mes in mes_links: date.append(mes.h1.get_text()) wter.append(mes.p.get_text()) wd_g.append(mes.span.get_text()) for i in range(7): wd_d.append(obj.select('.tem i')[i].get_text()) wind.append(obj.select('.win i')[i].get_text())
爬取动态网站上的天气信息
HTML1='https://www.weather.com.cn/weather1d/101050901.shtml' driver=webdriver.Firefox() driver.get(HTML1) page=BeautifulSoup(driver.page_source,'html5lib')
<div class ='sk'>
)最后
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算