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

import sys
import requests
from bs4 import BeautifulSoup
from xpinyin import Pinyin

\"\"\"<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\'}
        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(\"成都\")

 

收藏 打印