python爬蟲之墨跡天氣

2021-10-05 15:17:04 字數 2600 閱讀 4655

import requests

from lxml.html import etree

import json

import time # 匯入模組

class

mojiweather()

:def

city_name

(self)

:# 定義乙個輸入城市名稱的函式

cityname =

str(

input

("輸入城市名稱:"))

return cityname

defsearch_city

(city_name)

:# 搜尋這個城市

index_url =

""%city_name # 構造查詢相應城市天氣的url

response = requests.get(index_url)

response.encoding =

"utf-8"

# print(response.text)

try:

# 異常捕獲

city_id = json.loads(response.text)

.get(

'city_list')[

0].get(

'cityid'

)# 通過上面的url獲取城市的id

city_url =

""%str

(city_id)

# 通過城市id獲取城市天氣

return city_url

except

:print

('城市名輸入錯誤'

) exit(

)def

parse

(city_url)

:# 解析函式

response = requests.get(city_url)

response.encoding =

'utf-8'

html = etree.html(response.text)

current_city = html.xpath(

"//div[@class='search_default']/em/text()")[

0]# 下面都是利用xpath解析的

print

('當前城市:'

+current_city)

current_kongqi = html.xpath(

"//div[@class='left']/div[@class='wea_alert clearfix']/ul/li/a/em/text()")[

0]print

('空氣質素:'

+current_kongqi)

current_wendu = html.xpath(

"//div[@class='left']/div[@class='wea_weather clearfix']/em/text()")[

0]print

('當前溫度:'

+current_wendu+

'℃')

current_weather = html.xpath(

"//div[@class='wea_weather clearfix']/b/text()")[

0]print

('天氣狀況:'

+ current_weather)

current_shidu = html.xpath(

"//div[@class='left']/div[@class='wea_about clearfix']/span/text()")[

0]print

('當前濕度:'

+current_shidu)

current_fengji = html.xpath(

"//div[@class='left']/div[@class='wea_about clearfix']/em/text()")[

0]print

('當前風速:'

+current_fengji)

jingdian = html.xpath(

"//div[@class='right']/div[@class='near'][2]/div[@class='item clearfix']/ul/li/a/text()"

)print

('附近景點:'

)for j in jingdian:

print

('\t\t'

+j)if __name__ ==

'__main__'

:print

("歡迎使用墨跡天氣查詢系統"

) city_name = mojiweather.city_name(1)

city_url = mojiweather.search_city(city_name)

# print(city_url)

mojiweather.parse(city_url)

print

("謝謝使用本查詢系統"

)input

("按任意鍵退出..."

)

Python天氣爬蟲

建立beautifulsoup物件 body bs.body 獲取body部分 data body.find div 找到id為7d的div ul data.find ul 獲取ul部分 li ul.find all li 獲取所有的li for day in li 對每個li標籤中的內容進行遍歷 ...

python網頁爬蟲之天氣查詢

這是用python寫的天氣查詢 可用。這裡用的是和風天氣的介面 參考 我用的城市資料 將城市資料存放本地 jsons import pickle pickle file open city data.pkl wb pickle.dump jsons,pickle file pickle file.c...

Android 高仿墨跡天氣「我」頁面

實現的效果分三個部分來說明,首先是下拉到最大高度,個人資訊介面會產生乙個回彈的效果,然後是滾動到頂部,個人資訊介面收縮,並且產生登入按鈕會重新出現,黃色的訊息按鈕會平移到最右邊。最後是在這兩種狀態之間,控制項會根據滾動的距離來判斷變換成前面兩種狀態中的一種狀態。首先根據三種狀態切割userinfov...