我想要的表在http://hyd-app.rid.go.th/hydro5d.html
中检查后我进入了“网络”选项卡,发现请求正在后台发送到 http://hyd-app.rid.go.th/webservice/getDailyWaterLevelListReport5.ashx?option=2
我在这里使用的代码是
import requests
url = 'http://hyd-app.rid.go.th/webservice/getDailyWaterLevelListReport5.ashx?option=2'
data = requests.get(url)
time.sleep(20)
print(data.json)
但是它没有给我任何数据。可能是什么问题?
答案 0 :(得分:1)
您需要执行POST,而不是GET:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36',
'Referer': 'http://hyd-app.rid.go.th/hydro5d.html',
}
params = (
('option', '2'),
)
data = {
'DW[UtokID]': '5',
'DW[TimeCurrent]': '11/01/2562',
'_search': 'false',
'nd': '1547209026513',
'rows': '1000',
'page': '1',
'sidx': 'indexcount',
'sord': 'asc'
}
url = 'http://hyd-app.rid.go.th/webservice/getDailyWaterLevelListReport5.ashx'
response = requests.post(url, headers=headers, params=params, data=data)
print(response.json())
您可能需要将data
的某些值(例如'DW[TimeCurrent]'
)进行编程更新,以便在每次运行脚本时获取实际数据