import requests
from bs4 import BeautifulSoup
import operator
class Spider(object):
def __init__(self):
self.__headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'
}
self.urls=["http://www.weather.com.cn/textFC/hb.shtml","http://www.weather.com.cn/textFC/db.shtml","http://www.weather.com.cn/textFC/hd.shtml","http://www.weather.com.cn/textFC/hz.shtml","http://www.weather.com.cn/textFC/hn.shtml","http://www.weather.com.cn/textFC/xb.shtml","http://www.weather.com.cn/textFC/xn.shtml","http://www.weather.com.cn/textFC/gat.shtml"]
self.cityInfo={ }
def search(self):
for url in self.urls:
response = requests.get(url)
soup = BeautifulSoup(response.content.decode("utf-8"),features="lxml")
for div in soup.select("body > div.lqcontentBoxH > div.contentboxTab > div > div > div.hanml > div:nth-child(1)>div"):
n = 1
#print(div)
for tr in div.select("table>tr"):
#print(tr.get_text())
if n<=2:
n+=1
continue
cityNodes = tr.select("td[width='83']>a")
cityLowDegree = tr.select("td[width='86']")
info = ""
if len(cityNodes)>0 and len(cityLowDegree):
info +=cityNodes[0].string+":"+cityLowDegree[0].string
self.cityInfo[cityNodes[0].string]=int(cityLowDegree[0].string)
re = sorted(self.cityInfo.items(), key=operator.itemgetter(1), reverse=False) # 按照值进行升序排列
print("当天全国所有的城市气温最低的十个城市如下:")
for i in range(10):
print(re[i])
if __name__=="__main__":
spider = Spider()
spider.search()
python3爬虫爬取中国天气网所有城市最低气温(打印前十个最低气温)
最新推荐文章于 2024-07-24 14:36:42 发布
使用Python3编写爬虫程序,抓取中国天气网上所有城市的最低气温,并展示前十个最低气温数据。
摘要由CSDN通过智能技术生成