如何取消动态更新的表格

时间:2019-01-11 12:06:53

标签: python web-scraping python-requests

我想要的表在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)

但是它没有给我任何数据。可能是什么问题?

1 个答案:

答案 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]')进行编程更新,以便在每次运行脚本时获取实际数据