如何批量爬取中国天气网的天气数据?用代理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() [阅读全文]
推荐阅读
25
2019-06
HTTP代理IP要点
在互联网中,IP地址就是你的网络身份证,它是唯一的,且每个人的IP地址都是不同的。当你用自己真实IP地址访问网络时,很可能被懂得网络技术的坏蛋利用,造成个人信息泄漏。如果这时候你
13
2019-05
代理IP安全吗?
?很多时候,互联网给我们带来了很多的便利,同时也给存在着很多漏洞和欺骗,稍微不注意电脑信息就会被丢失,非常的不安全,遇到这样的情况可以选择蚂蚁浏览器代理IP,这样一来安全性
10
2019-04
HTTP代理IP的含义,HTTP代理IP如何使用?
关于HTTP代理IP的意思,大多数人还都不太明白。往往处于一个只可意会不可言传的懵懂状态。那么HTTP代理IP是什么意思呢?又该如何使用呢?今天黑洞HTTP就为大家详细介绍一下!
30
2019-04
爬虫代理就是代理IP吗?
有朋友问:爬虫必须用代理IP吗?很多人认为爬虫必须要用代理IP,没有代理IP将寸步难行;也有人说,代理IP是非必须的。那么他们这样认为的理由都是什么呢?
15
2019-03
HTTP代理原理解析
在整个互联网的Web结构中,HTTP代理服务器是一个出现频率极高的组件(其他还有浏览器、缓存服务器、Web服务器、DNS解析服务器等),理解HTTP代理服务器的原理有助于我们更好地认识Web架构。
04
2019-06
c#爬虫和python要用什么代理ip服务器软件?
c#爬虫和python要用什么代理ip?我用c#,java都写过爬虫。区别不大,原理就是利用好正则表达式。只不过是平台问题。后来了解到很多爬虫都是用python写的。因为目前对python并不熟,所以也不知道这
热门文章
注意: 严禁一切违规违法的业务,一经发现直接封帐号
Powered by wanchen tech. © | 粤ICP备18047396号-6 广州万宸软件科技有限公司http代理 版权所有