求指导解决问题的思路

2014-07-01 12:03:52 +08:00
 kchum
需求是登陆某https网站,Post数据登陆不成功(没有达到预期),可以考虑哪几个因素(比如Post的数据,伪造Header,cookies,ip被封,还有哪些因素会导致不成功),可以推荐哪些库(现在我用urllib,urllib2)

谢谢
3204 次点击
所在节点    Python
9 条回复
nodejx
2014-07-01 12:28:49 +08:00
试试requests。
wingoo
2014-07-01 12:58:22 +08:00
检查所有的cookie,以及每一个动态请求,可能某一个动态请求里包含了写cookie的数据
delong
2014-07-01 13:40:16 +08:00
python的调试用http库,觉得最好用的就是requests了

无法登录这要看返回错误是什么,不看错误状态怎么调试接口啊

还是说你是偷偷登录别人的网站抓人家数据

现在大多网站都有 csrf token 验证,可能是这个吗?
kchum
2014-07-01 14:54:08 +08:00
@nodejx @delong 稍微看了下requests,好用
现在遇到的麻烦是,post信息之后返回一个用js自动提交数据(数据被编码)的页面
我修改action为本地的php(print_r($_POST)),503了
delong
2014-07-01 16:39:14 +08:00
获取服务返回后,修改action指向本地?? 我怎不明白lz想要做什么了? 从被人那里拿到的form往称赞吃本地提交,得到一个 503 状态。。。
kchum
2014-07-01 17:10:43 +08:00
@delong 额,修改action,是想看下他自动提交的数据是什么,所以返回的页面弄成html放在本地提交。可以忽略这个~~
它返回用js自动提交数据的页面之后,Python运行不了js里面的东西,该如何解决这个问题?我稍微查了下用Pyv8?
hupantingxue
2014-07-02 16:09:52 +08:00
这个网站是有多次交互吗?还是除了登陆,你还要做其他动作?
delong
2014-07-02 17:40:09 +08:00
@kchum 如果只是想知道页面提交了什么数据, 个人感觉直接读一下js源码就好了。
如果js是压缩过的,那么简单看一下js是提交的form还是ajax,如果是form那直接看html里的input都有什么,如果是ajax建议抓包,如果因为https抓不了那就换个思路,在本地保存的html里执行一下js看看后有什么结果。 第一次尝试提交到本地不是503了么,虽然服务不可用但是提交的数据会有记录的
kchum
2014-07-03 16:07:24 +08:00
@hupantingxue 是还有其他操作。这个也很莫名其妙,get Url返回一个自动提交的页面,必须Post过去才正确显示登录表单~
@delong 嗯,已经了,总是很奇怪。前面几次保存页面修改action提交,都完全没提示。后面有返回了。不过最后是用其他方法解决的。
Anyway,谢谢大家

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/120391

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX