python3爬虫爬取中国天气网所有城市最低气温(打印前十个最低气温)

使用Python3编写爬虫程序,抓取中国天气网上所有城市的最低气温,并展示前十个最低气温数据。
摘要由CSDN通过智能技术生成
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()

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值