python爬蟲爬取天氣預報資訊

2021-10-10 17:19:36 字數 1751 閱讀 9944

目標天氣預報**:

需要用到的庫有requests(用來傳送請求和接收url)beautifulsoup(用來解析html文字)

爬蟲的基本思路:

1.首先傳送請求並返回requests(最好模擬谷歌瀏覽器的頭部訪問(即下面的headers),並且設定乙個每次訪問的間隔時間,這樣就不容易觸發**的反爬機制(說白了就是模擬人類的訪問行為))

2.獲得requests物件後使用beautifulsoup (美麗的湯??也不知道為啥要起這個名)來解析requests物件,注意這裡要用request.text,就取文字,解析後的soup列印出來其實就是整個html的字串內容,但是型別並不是string,應該是bs4型別,這就是這個美麗的湯的魅力所在,它可以直接在python用類似於ccs選擇器那樣的方式一層一層的尋找我們要的div內容。

3.搜尋soup物件中我們需要的內容,就是一層一層div找到對應的屬性,然後拿取我們需要的內容。(看html或者把之前的soup物件列印出來)

4.列印或儲存檔案

import requests

from bs4 import beautifulsoup

headers =

url=

''res = requests.get(url, headers=headers,timeout=20)

res.encoding =

'utf-8'

#print(res.status_code)

soup = beautifulsoup(res.text,

'html.parser'

)tem_list = soup.find_all(

'p',class_=

'tem'

)#存溫度

#print(tem_list)

day = soup.find(

'ul'

,class_=

't clearfix'

)#存日期

day_list = day.find_all(

'h1'

)#print(day_list)

wealist = soup.find_all(

'p',class_=

'wea'

)#存天氣

day_pre =

for i in

range(7

):try:

temhigh = tem_list[i]

.span.string #有時候沒有最高溫度,用第二天的代替

except attributeerror as e:

temhigh = tem_list[i+1]

.span.string

temlow = tem_list[i]

.i.string

wea = wealist[i]

.string

day_pre[day_list[i]

.string]

='最高溫度:'

+temhigh +

' 最低溫度:'

+ temlow +

' 天氣:'

ziheng 爬取天氣預報

import requests import city import time bj input 你想查詢哪個城市?most cold city 巴拉巴拉 most cold city wendu 100a 1for i in city.citycode.keys print 這是查詢的第 d個城市...

Google API 獲取天氣預報資訊

要獲得天氣預報資訊可用利用google提供的藉口,城市名稱 拼音 它將返回乙個用xml封裝的天氣資訊。示例 shanghai 返回 xml version 1.0 xml api reply version 1 weather module id 0 tab id 0 mobile row 0 mo...

Google API 獲取天氣預報資訊

要獲得天氣預報資訊可用利用google提供的藉口,城市名稱 拼音 它將返回乙個用xml封裝的天氣資訊。示例 shanghai 返回 xml version 1.0 xml api reply version 1 weather module id 0 tab id 0 mobile row 0 mo...