Python 有没有办法用post方法指定请求的长度?
我正在从Investment.com上抓取经济日历表。我用的是漂亮的汤和图书馆。我使用post方法进行查询,但似乎找不到从表中获取包含200多行的数据响应的方法 如果在更新表过滤器时查看网络流量,可以看到有一个“getCalendarFilteredData”请求。我是基于这一点提出这一发帖请求的。我曾尝试更改代码中显示的标题和查询参数,但我无法理解这一点。我需要一些帮助。这就是我所拥有的:Python 有没有办法用post方法指定请求的长度?,python,beautifulsoup,python-requests,Python,Beautifulsoup,Python Requests,我正在从Investment.com上抓取经济日历表。我用的是漂亮的汤和图书馆。我使用post方法进行查询,但似乎找不到从表中获取包含200多行的数据响应的方法 如果在更新表过滤器时查看网络流量,可以看到有一个“getCalendarFilteredData”请求。我是基于这一点提出这一发帖请求的。我曾尝试更改代码中显示的标题和查询参数,但我无法理解这一点。我需要一些帮助。这就是我所拥有的: url='1〕https://in.investing.com/economic-calendar/Se
url='1〕https://in.investing.com/economic-calendar/Service/getCalendarFilteredData'
header={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36'
“(KHTML,像壁虎一样)铬/77.0.3865.90狩猎/537.36”,
“x-request-with”:“XMLHttpRequest”
}
查询={
“国家[”:[17、25、6、37、5、72、22、39、35、4],
“重要性[”:[1,2,3],
“dateFrom”:开始日期,
“dateTo”:当前日期,
“时区”:58,
}
对于请求:
将requests.Session()作为s的:
尝试:
web=s.post(url,headers=header,data=query)
soup=BeautifulSoup(web.json()['data'],'html.parser')
rows=soup.find_all('tr',{'class':'js event item'})
在将数据插入pandas数据帧后,无论参数是什么,我都会得到这个大小
[200行x7列]
当我试图从2000年初的数据中提取数据时,行的数量应该要大得多。关于如何进行的任何提示?查询有一个限制,您可以在“GetCalendarFilteredata”响应中看到它
params:{
limit: "0,200"
}
通过发送参数:{“limit\u from”:2)
如果查看表单数据,您可以在GetCalendarFilteredata请求中看到它。我已经测试过,通过每次将limit_从参数中增加1,可以获得不同的数据。可能是网站API的意图,请查看他们的文档。起初我也这么认为!!但该网站不提供API,因此我正在删除表。是的!我尝试了,但没有成功。出于测试目的,我将参数设置为
400200
,但得到了与0200
相同的数据。你尝试了吗?你是对的。它实际上是参数:{“limit\u from”:2}
。我已经编辑了答案