python调post_Python请求调试POST请求

我试图刮一个网站,在其中我必须得到正确的网页使用一个帖子请求。在

下面是不同的屏幕,显示了如何找到需要在请求中使用的标头和有效负载:

1)本页:经济指标一览表:

7ab9b968e3919acb2a0712f39cb61b9d.png

2)可以使用屏幕右侧的“过滤器:

8cec8766b320524f90e338f9eab62074.png

3)单击“应用”按钮将向站点发送一个POST请求,该请求将刷新页面以仅显示选中框的信息。下面是一个屏幕截图,显示了POST请求中发送的表单的元素:

47ef6f1f95bfae10da4ac744f743e027.png

但是,如果我尝试使用python请求,使用以下代码(见下文)来执行这个POST请求,那么表单似乎没有被处理,返回的页面只是默认页面。在payload= {

'country[]': 5,

'limit_from': '0',

'submitFilters': '1',

'timeFilter': 'timeRemain',

'currentTab': 'today',

'timeZone': '55'}

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',

'X-Requested-With': 'XMLHttpRequest',

'Accept':'*/*',

'Accept-Encoding':'gzip, deflate, br',

'Accept-Language':'en-US,en;q=0.8',

'Connection':'keep-alive',

'Host':'www.investing.com',

'Origin':'https://www.investing.com',

'Referer':'https://www.investing.com/economic-calendar/',

'Content-Length':'94',

'Content-Type':'application/x-www-form-urlencoded',

'Cookie':'adBlockerNewUserDomains=1505902229; __qca=P0-734073995-1505902265195; __gads=ID=d69b337b0f60d8f0:T=1505902254:S=ALNI_MYlYKXUUbs8WtYTEO2fN9O_q9oykA; cookieConsent=was-set; travelDistance=4; editionPostpone=1507424197769; PHPSESSID=v9q2deffu2n0b9q07t3jkgk4a4; StickySession=id.71595783179.419www.investing.com; geoC=GB; gtmFired=OK; optimizelySegments=%7B%224225444387%22%3A%22gc%22%2C%224226973206%22%3A%22direct%22%2C%224232593061%22%3A%22false%22%2C%225010352657%22%3A%22none%22%7D; optimizelyEndUserId=oeu1505902244597r0.8410692836488942; optimizelyBuckets=%7B%228744291438%22%3A%228731763165%22%2C%228785438042%22%3A%228807365450%22%7D; nyxDorf=OT5hY2M1P2E%2FY24xZTE3YTNoMG9hYmZjPDdlYWFnNz0wNjNvYW5kYWU6PmFvbDM6Y2Y0MDAwYTk1MzdpYGRhPDk2YTNjYT82P2E%3D; billboardCounter_1=1; _ga=GA1.2.1460679521.1505902261; _gid=GA1.2.655434067.1508542678'

}

import lxml.html

import requests

g=requests.post("https://www.investing.com/economic-calendar/",data=payload,headers=headers)

html = lxml.html.fromstring(g.text)

tr=html.xpath("//table[@id='economicCalendarData']//tr")

for t in tr[4:]:

print(t.find(".//td[@class='left flagCur noWrap']/span").attrib["title"])

这是可见的,例如,我只选择国家“5”(美国),发布请求,并在结果页中查找出现的国家,我也会看到其他国家。在

有人知道我对那个帖子的要求做错了什么吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值