我正在嘗試從以下網站上的表格中抓取資料:https : //droughtmonitor.unl.edu/DmData/DataTables.aspx
import requests
from bs4 import BeautifulSoup
url = 'https://droughtmonitor.unl.edu/DmData/DataTables.aspx'
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
drought_table = soup.find('table', {'id':'datatabl'}).find('tbody').find_all('tr')
出于某種原因,我沒有得到任何輸出。我試過用熊貓做同樣的作業
import pandas as pd
url = 'https://droughtmonitor.unl.edu/DmData/DataTables.aspx'
table = pd.read_html(url)
df = table[0]
但最終也得到了一個空的資料框。什么可能導致這種情況?
uj5u.com熱心網友回復:
通過檢查瀏覽器的網路工具,很明顯站點使用 Fetch/XHR 在另一個請求中加載表。
圖片:網路監視器
您可以使用此代碼獲取表資料:
import requests
import json
headers = {
'Content-Type': 'application/json; charset=utf-8',
}
params = (
('area', '\'conus\''),
('statstype', '\'1\''),
)
response = requests.get(
'https://droughtmonitor.unl.edu/DmData/DataTables.aspx/ReturnTabularDMAreaPercent_national',
headers=headers, params=params
)
table = json.loads(response.content)
# Code generated by https://curlconverter.com/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/401191.html
