使用requests模塊獲取網頁內容,bs4數據清洗 ,pands保存數據一般都為csv格式。
import requests from bs4 import BeautifulSoup import pandas as pd def Get_data(url): # 請求得到網頁內容 res = requests.get(url) # 二進制方式顯示網頁內容 html = res.content.decode('gbk') # 格式化網頁 soup = BeautifulSoup(html,'html.parser') # 使用soup對象find_all所需內容 tr_list = soup.find_all('tr') # 提取需要的數據 dates = [] tmp = [] condiitions = [] # 清洗數據 for data in tr_list[1:]: rel_data = data.text.split() dates.append(rel_data[0]) tmp.append(''.join(rel_data[3:6])) condiitions.append(''.join(rel_data[1:3])) Biaoge = pd.DataFrame() Biaoge['日期'] = dates Biaoge['溫度'] = tmp Biaoge['天氣情況'] = condiitions return Biaoge mounth9 = Get_data('http://www.tianqihoubao.com/lishi/beijing/month/201909.html') mounth10 = Get_data('http://www.tianqihoubao.com/lishi/beijing/month/201910.html') mounth11 = Get_data('http://www.tianqihoubao.com/lishi/beijing/month/201911.html') # 利用pd.concat拼接 9、10、11月份表格為一份 v = pd.concat([mounth9,mounth10,mounth11]).reset_index(drop=True) # 保存數據為csv格式 v.to_csv('BeiJing.csv',index=False,encoding='utf-8')
