python登录V2EX失败

2013-05-12 10:36:53 +08:00
 xuelang
之前看了“谁写个自动领取奖励脚本?”(http://www.v2ex.com/t/68136),自己刚接触python,所以想试着写一个练练手。

用到python的requests库,关于网站登录部分,分析了一下登录提交的表单,有5个字段,类似下面:
next=%2F&u=***&p=***&once=21381&next=%2F

首先分析登录界面取出next,once,next值,分别为input_next_value_pre、input_once_value、input_next_value_post, 然后用requests请求页面,主要代码如下:
signin_url = "http://www.v2ex.com/signin"
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) \
AppleWebKit/537.31 (KHTML, like Gecko) \
Chrome/26.0.1410.65 Safari/537.31"
headers = {"User-Agent": user_agent}

logininfo = {"next": input_next_value_pre,
"u": usr_name,
"p": passwd,
"once": input_once_value,
"next": input_next_value_post
}
signin_req = requests.post(signin_url,
data=logininfo,
headers=headers,
)

结果登录老是失败,怀疑是v2ex的登录表单中有两个next字段,并且值一样,这样构建post字典第二个next就被忽略,不知道该怎么解决呢?
7121 次点击
所在节点    Python
37 条回复
yaotian
2013-05-13 00:07:46 +08:00
@swulling 占用资源大吗?
xuelang
2013-05-13 08:53:01 +08:00
@yanwen 我也第一次写.
swulling
2013-05-13 13:09:17 +08:00
@yaotian gevent + webkit,应该不高,不过我没测过性能

作者原来是webkit/selenium二选一,后者资源占用比较大,貌似新版本去掉了
yanwen
2013-05-14 15:14:34 +08:00
@xuelang 用了一下你的gist。。。貌似也是login 失败。。
xuelang
2013-05-14 16:45:52 +08:00
@yanwen 我的可以登录上去啊(刚测的);不过短时间内多次登录会失败,可能服务器有限制。
yanwen
2013-05-14 19:59:56 +08:00
还是不行。。也许是人品问题。。呃。。
@xuelang

http://bcs.duapp.com/picstore/CoUbLHaInI.jpg
xuelang
2013-05-14 22:15:06 +08:00
@yanwen 没在win下试过。难道是user-agent的问题,你换成win下浏览器的user-agent试一下
yanwen
2013-05-14 22:23:53 +08:00
@xuelang

还是没搞明白到底是什么原因。。。。
改了UA,依旧提示登陆失败。。
yanwen
2013-05-14 22:28:30 +08:00
会不会是BS版本的问题??我装了两个BS版本。。一个是3的。。一个是4的。。是这个原因么?
xuelang
2013-05-14 22:31:11 +08:00
@yanwen 把3卸了试试?
yanwen
2013-05-14 22:35:17 +08:00
卸了BS3.2.1之后,还是不行。。没办法。mark一下。。改天有时间再弄。。
xuelang
2013-05-14 22:49:36 +08:00
@yanwen 刚在win7下试了一下,可以正常登录。不知道怎么传图。。
yanwen
2013-05-14 23:51:23 +08:00
@xuelang 直接粘贴图片的url地址就可以了。。
xuelang
2013-05-15 00:02:09 +08:00
yanwen
2013-05-15 00:04:00 +08:00
真奇怪。。等我重装py看看能不能解决。。真搓。。哎。。
xieren58
2013-05-17 12:24:10 +08:00
怎么不用mechanize ?
xuelang
2013-05-17 12:55:10 +08:00
@xieren58 不知道这个库呢,有空再看下

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

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

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

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

© 2021 V2EX