Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法用post方法指定请求的长度?_Python_Beautifulsoup_Python Requests - Fatal编程技术网

Python 有没有办法用post方法指定请求的长度?

Python 有没有办法用post方法指定请求的长度?,python,beautifulsoup,python-requests,Python,Beautifulsoup,Python Requests,我正在从Investment.com上抓取经济日历表。我用的是漂亮的汤和图书馆。我使用post方法进行查询,但似乎找不到从表中获取包含200多行的数据响应的方法 如果在更新表过滤器时查看网络流量,可以看到有一个“getCalendarFilteredData”请求。我是基于这一点提出这一发帖请求的。我曾尝试更改代码中显示的标题和查询参数,但我无法理解这一点。我需要一些帮助。这就是我所拥有的: url='1〕https://in.investing.com/economic-calendar/Se

我正在从Investment.com上抓取经济日历表。我用的是漂亮的汤和图书馆。我使用post方法进行查询,但似乎找不到从表中获取包含200多行的数据响应的方法

如果在更新表过滤器时查看网络流量,可以看到有一个“getCalendarFilteredData”请求。我是基于这一点提出这一发帖请求的。我曾尝试更改代码中显示的标题和查询参数,但我无法理解这一点。我需要一些帮助。这就是我所拥有的:

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}
。我已经编辑了答案