如何模拟这个表单post信息?
目标页面
https://www.alphavantage.co/s...
我的模拟代码
import urllib.request
import urllib.parse
url = 'https://www.alphavantage.co/support/#api-key'
values = {'first':'xx','last': 'voidking','occupation': 'investor','email':'xyz@qq.com'}
data = urllib.parse.urlencode(values).encode(encoding='utf-8',errors='ignore')
headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0' }
request = urllib.request.Request(url=url, data=data,headers=headers,method='POST')
x=urllib.request.urlopen(request)
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
请问,如何成功模拟post表单数据,并获得返回的响应呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
大概有几种情况
被403拒了,肯定是缺少某个关键参数/header。一般网站可能还有host、referer等header校验,django默认会有csrf校验。
你先用web页面提交,看一下传了些什么参数,有哪些请求header。
看了下你这个网站,正好就是有csrf校验,所以,你得想办法先拿到csrfmiddlewaretoken
关键提交的headers必须要有Referer和X-CSRFToken