使用Web Scraper登录https://angel.co/login时data参数配置问题求助
解决Angel.co登录爬虫的data参数问题
嘿,我帮你分析下这个问题——你猜的没错,问题确实大概率出在data参数的字段上。很多网站(尤其是用Rails这类框架搭建的,Angel.co就是其中之一)的登录表单会有一些你没注意到的隐藏字段,或者字段名和你想的不一样。
我给你一套靠谱的排查和解决方法:
第一步:抓包看真实提交的表单参数
你得先知道浏览器实际登录时到底发了哪些数据:
- 打开Chrome或Firefox的开发者工具(按F12就行),切换到Network面板
- 勾选面板上的「Preserve log」选项,防止登录跳转后请求被清空
- 在网页上手动完成一次登录操作,然后在Network列表里找到登录的POST请求(URL应该就是
https://angel.co/login) - 点击这个请求,切换到Payload(Chrome)或Form Data(Firefox)标签,这里会列出所有浏览器提交的键值对——这些就是你需要放到
data里的全部内容
第二步:修正你的data字典
根据Angel.co的常见登录表单结构,你的data大概率缺了几个关键字段,而且字段名可能也不对。比如:
- 很多时候邮箱和密码的字段名不是
email/password,而是user[email]/user[password](这是Rails的嵌套参数风格) - 会有
utf8字段,值是那个对勾符号✓(直接写就行,requests会自动编码) - 还有
commit字段,值一般是Log in(对应登录按钮的文本)
修正后的data应该类似这样:
data={ "authenticity_token": _xsrf, "utf8": "✓", "user[email]": USERNAME, "user[password]": PASSWORD, "commit": "Log in" }
额外小提示:补充请求头的Referer字段
有些网站会验证请求的来源,你可以在headers里加上Referer字段,指向登录页面,提升成功率:
headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36", "Referer": "https://angel.co/login" }
你按照这个方法调整后,应该就能正常提交登录请求了。如果还是不行,再回头看抓包的Form Data,确保所有字段都准确复制进去了。
内容的提问来源于stack exchange,提问作者shadowstream
相关产品推荐
相关产品推荐

