天气爬虫 python

爬取中国天气网,获取相关信息,并通过相关库,进行在线搜索。

import sys
import requests
from bs4 import BeautifulSoup
from xpinyin import Pinyin
# antuor : Comiii
# date : 2018/12/15
# purpose : university competition

"""<div class="left">
			<dl class="weather_info">
			<dt><img src="http://content.pic.tianqistatic.com/content/20170918/0f64a9643cd8a42fa5f52fddd4ddc8ee.jpg" alt="成都天气预报"></dt>
			<dd class="name"><h2>成都</h2><i><a href="/chinacity.html">[切换城市]</a></i></dd>
			<dd class="week">2018年12月16日 星期日 戊戌年冬月初十  </dd>
			<dd class="weather">
				<i><img src="//static.tianqistatic.com/static/wap2018/ico1/b0.png" ></i>
				<p class="now"><b>5</b><i>℃</i></p>
				<span><b>晴</b>4 ~ 14℃</span>
			</dd>	
			<dd class="shidu"><b>湿度:99%</b><b>风向:西南风 2级</b><b>紫外线:强</b></dd>
			<dd class="kongqi" >
			<h5 style="background-color:#ffbb17;">空气质量:良</h5>
			<h6>PM: 100</h6>
			<span>日出: 07:54<br />日落: 18:04</span>
			</dd>
		<dl>
"""


class Weather:
    location = 'chengdu'
    date = ""
    soup = ""
    humidity = ""
    quanity = ""
    now = ""

    def __init__(self, place):
        pin = Pinyin()    # 将汉字转换成拼音
        place = pin.get_pinyin(place, "")
        url = "http://www.tianqi.com/" + place
        # print(url)
        header = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537',
'Referer':'www.tianqi.com'}
        r = requests.get(url, header, timeout=60)
        self.soup = r.text
        # print(self.soup)
        self.check()

    def check(self):
        # 爬取信息并进行分割,格式化
        self.soup = BeautifulSoup(self.soup, "html.parser")
        try:
            for div in self.soup.find_all('div', {'class': 'left'}):
                self.location = div.find('dd', {'class': 'name'}).text[:-6]
                print(self.location)

                self.date = div.find('dd', {'class': 'week'}).text
                print(self.date)

                self.humidity = div.find('dd', {'class': 'shidu'}).text
                print(self.humidity[:-14])
                print(self.humidity[6:15])
                print(self.humidity[15:20])

                self.now = div.find('dd', {'class': 'weather'}).text
                self.now.replace("\r", "")
                print(self.now[2:5])
                print(self.now[6:7])
                print(self.now[7:14])
                self.quanity=div.find('dd', {'class': 'kongqi'}).text
                print(self.quanity[0:6])
                print(self.quanity[6:12])
                print(self.quanity[12:])
        except:
            print("")


if __name__ == '__main__':
#    这里是java,jython和python连用 可以直接声明对象即可!
#    a = []

 #   for i in range(1, len(sys.argv)):
 #       a.append(sys.argv[i])
 #   Weather(a[0])
     weather("成都")

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值