Python 爬蟲,爬取歷史天氣資料

2021-10-01 13:55:45 字數 1662 閱讀 2534

先上原始碼

這次用的是beautifulsoup,解析html,非常的便捷

import datetime

import pandas as pd

import re

import requests

import time

from bs4 import beautifulsoup

headers =

def get_html(url):

# 這個**第一次請求一般都會被反爬給擋住,所以要多請求幾次

while true:

r = requests.get(url, headers=headers)

print('從', url, '獲取資料')

if 'table' in r.text:

print('成功獲取資料')

return r.content

else:

print('甘霖涼雞掰,不給我資料')

time.sleep(1)

def parse_html(page_content):

soup = beautifulsoup(page_content, features='lxml')

table = soup.find('table')

item_list = table.find_all('tr')

month =

for i in range(1, len(item_list)):

td = item_list[i].find_all('td')

day = list()

# 日期

# 高溫低溫

nums = re.findall(r'-?\d+', td[2].gettext())

# 天氣和風向

pattern = re.compile(r'\s+')

return month

def parse_date(text):

y = text.find('年')

m = text.find('月')

d = text.find('日')

return datetime.date(int(text[y - 4: y]), int(text[m - 2: m]), int(text[d - 2: d]))

def main():

data =

for year in [2016, 2017]:

for month in range(1, 13):

print(f'爬取年月的天氣資料')

month_str = '0' + str(month) if month < 10 else str(month)

url = '' + str(year) + month_str + '.html'

h = get_html(url)

data.extend(parse_html(h))

frame = pd.dataframe(data, columns=['date', 'low_tp', 'high_tp', 'weather', 'wind'])

frame.to_csv('weather.csv', index=false)

if __name__ == '__main__':

main()

python爬取歷史天氣資料

import requests from requests.exceptions import requestexception from bs4 import beautifulsoup import os import csv import time def get one page url 獲...

python爬取靜態網頁歷史天氣資料

利用python庫 requests 和 beautifulsoup 對靜態網頁內容爬取 這裡給出的例子是對乙個天氣 的歷史天氣進行爬取 待更新 附python 一般網頁都會有 robots.txt 檔案,用來記錄使用者對資料和表單內容的許可權。直接在主頁後面加 robots.txt 即可訪問到。例...

Python爬取中國天氣網天氣資料

由於一些需要,想要獲取今天的天氣資料,於是又撿起了python寫了個爬蟲用來獲取中國天氣網上的氣象資料。由於我需要的資料比較簡單,因為我只需要北京地區當天的溫度 最低溫度和最高溫度 和天氣,因此 部分比較簡單,下面就來講講這個爬取的過程。第一步 網頁分析 要進行爬蟲設計,首先得分析網頁的請求過程。首...