如何批量爬取中国天气网的天气数据?用代理IP可以吗? 今天我们就来看下,爬虫是如何爬取中国天气网的天气数据的。这里我们以南京为例,来爬取南京近7天的天气数据。首先,我们先打开目标页面,右键检查元素,查找我们需要信息所在的标签位置,然后开始爬取。
代码如下:
import requests
from bs4 import BeautifulSoup
def getHTMLText(url,timeout = 30):
try:
r = requests.get(url, timeout = 30) #用requests抓取网页信息
r.raise_for_status() #可以让程序产生异常时停止程序
r.encoding = r.apparent_encoding
return r.text
except:
return '产生异常'
def get_data(html):
final_list = []
soup = BeautifulSoup(html,'html.parser') #用BeautifulSoup库解析网页
body = soup.body
data = body.find('div',{'id':'7d'})
ul = data.find('ul')
lis = ul.find_all('li')
for day in lis:
temp_list = []
date = day.find('h1').string #找到日期
temp_list.append(date)
info = day.find_all('p') #找到所有的p标签
temp_list.append(info[0].string)
if info[1].find('span') is None: #找到p标签中的第二个值'span'标签——最高温度
temperature_highest = ' ' #用一个判断是否有最高温度
else:
temperature_highest = info[1].find('span').string
temperature_highest = temperature_highest.replace('℃',' ')
if info[1].find('i') is None: #找到p标签中的第二个值'i'标签——最高温度
temperature_lowest = ' ' #用一个判断是否有最低温度
else:
temperature_lowest = info[1].find('i').string
temperature_lowest = temperature_lowest.replace('℃',' ')
temp_list.append(temperature_highest) #将最高气温添加到temp_list中
temp_list.append(temperature_lowest) #将最低气温添加到temp_list中
wind_scale = info[2].find('i').string #找到p标签的第三个值'i'标签——风级,添加到temp_list中
temp_list.append(wind_scale)
final_list.append(temp_list) #将temp_list列表添加到final_list列表中
return final_list
#用format()将结果打印输出
def print_data(final_list,num):
print("{:^10}\t{:^8}\t{:^8}\t{:^8}\t{:^8}".format('日期','天气','最高温度','最低温度','风级'))
for i in range(num):
final = final_list[i]
print("{:^10}\t{:^8}\t{:^8}\t{:^8}\t{:^8}".format(final[0],final[1],final[2],final[3],final[4]))
#用main()主函数将模块连接
def main():
url = 'http://www.weather.com.cn/weather/101190101.shtml'
html = getHTMLText(url)
final_list = get_data(html)
print_data(final_list,7)
main()
通过以上代码,我们就可以获取到中国天气网的南京天气数据了。黑洞http代理,数据采集服务服务提供商,为您提供更快,更可靠的服务。
相关资讯
相关文章内容简介
1 如何批量爬取中国天气网的天气数据?用代理IP可以吗?
如何批量爬取中国天气网的天气数据?用代理IP可以吗? 今天我们就来看下,爬虫是如何爬取中国天气网的天气数据的。这里我们以南京为例,来爬取南京近7天的天气数据。首先,我们先打开目标页面,右键检查元素,查找我们需要信息所在的标签位置,然后开始爬取。 代码如下: import requests from bs4 import BeautifulSoup def getHTMLText(url,timeout = 30): try: r = requests.get(url, timeout = 30) #用requests抓取网页信息 r.raise_for_status() [阅读全文]
推荐阅读
18
2019-03
没有IP代理软件的初学 Python 需要安装哪些软件?
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python
13
2019-06
稳定的代理ip有哪些神操作?
有的用户以为一台计算机只有一个IP地址,其实不然。我们可以指定一台计算机具有多个IP地址,因此在访问互联网时,不要以为一个IP地址就是一台计算机;另外,通过特定的技术,也可以使多
13
2019-11
代理IP包含哪些类别?
我们知道, 代理IP 按请求信息的安全性可以分为透明代理、普通匿名代理和高级匿名代理三大类。但是,按照使用的目的不同代理IP可以分成下述几种类别。
31
2019-05
HTTP代理IP和socks5代理IP一样吗?
有些朋友分不清什么是HTTP代理IP,什么是socks5代理IP,经常将两者搞混,结果买错了产品,甚至有的客户想将错就错,问我HTTP代理IP能不能当成socks5代理IP用,或者socks5代理IP能不能当成HTTP来使
16
2019-04
使用代理IP真的能隐藏自己的真实IP吗?
代理IP的作用越来越大,有用来做爬虫的,有用来做批量注册的,还有用来投票的等等,还有很多用来隐藏自己真实的IP,做一些不可描述的事情,也有很多朋友问,使用代理IP真的能隐藏自己的
23
2019-10
网络代理ip如何设置使用?
代理服务器 管理对Internet的访问,并阻止外部设备访问您的网络。如果您所在的网络使用代理服务器连接到Internet,则可以向Password Manager提供代理服务器详细信息。您可以使用“网络代理设置”
热门文章
注意: 严禁一切违规违法的业务,一经发现直接封帐号
Powered by wanchen tech. © | 粤ICP备18047396号-6 广州万宸软件科技有限公司http代理 版权所有