程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python爬蟲——爬取近3個月綿陽市降水量數據源

編輯:Python

文章目錄

  • 前言
  • 一、基本目標
  • 二、使用步驟
    • 1.進行分析
    • 2.整體代碼
  • 結果
  • 總結


前言

爬取近3個月綿陽市的降水量數據,並存儲在xlsx文檔中。利用xpathre爬蟲技術獲取數據,利用pandas把數據存儲到xlsx文檔中。


提示:爬蟲不可用作違法活動,爬取時要設定休眠時間,不可過度爬取,造成服務器宕機,需付法律責任!!!

一、基本目標

示例:pandas 是基於NumPy 的一種工具,該工具是為了解決數據分析任務而創建的。

二、使用步驟

1.進行分析

打開中國天氣網的數據,發現只有40天的選項裡能更全面的顯示降水量,但是只能顯示一個月的,我需要找到其他月份的數據

發現這邊可以選擇月份,初步認為當我選擇月份的時候,會觸發某些函數事件而返回數據。打開開發者工具,准備查看網絡數據。

點擊其他月份,出現了幾個html的網絡數據,點擊Preview查看發現是具體的天氣各項數據,包含日期、溫度、降水、黃歷等等信息。

2.整體代碼

import requests
import json
import pandas as pd
# 結果集合
result_list = []
for i in range(2,6):
# 待爬取的url
url = "http://d1.weather.com.cn/calendar_new/2022/101270401_20220"+(str)(i)+".html"
# 反反爬headers
headers = {

"Referer": "http://www.weather.com.cn/",
"Connection": "keep-alive",
"Content-Encoding": "gzip",
"Content-Type": "text/html",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36",
"Cookie": "f_city=%E5%8D%97%E5%AE%81%7C101300101%7C; Hm_lvt_080dabacb001ad3dc8b9b9049b36d43b=1654830903,1654838893,1654956338; Hm_lpvt_080dabacb001ad3dc8b9b9049b36d43b=1654957148",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9"
}
# 爬取
resp = requests.get(url=url, headers=headers)
resp.encoding = 'utf-8'
# 數據字符串
data_str = resp.text[11:]
# 轉json,變數據集合
data_list = json.loads(data_str)
# 循環數據集合,獲取數據
for data in data_list:
data['城市'] = '綿陽'
rain = data['hgl']
date = data['date']
result = {
}
result['城市'] = '綿陽'
result['降水概率'] = rain
result['日期'] = date
result_list.append(result)
print(result_list)
# pandas寫入excel
data = pd.DataFrame(result_list)
writer = pd.ExcelWriter('降雨.xlsx') # 寫入Excel文件
data.to_excel(writer, 'page_1', float_format='%.5f')
writer.save()
print("結束!")

結果

程序運行結果如下

存儲的xlsx文檔如下


總結

爬蟲的基本步驟:
1.檢查有沒有反爬,設置常規反反爬,User-Agentreferer都是最常見的反爬手段
2.利用xpathre技術進行定位,定位後獲取想到的數據即可
3.pandas寫入數據到xlsx文檔
4.注意設置time休眠


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved