V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
paulw54jrn
V2EX  ›  问与答

如何用 Python 脚本模拟顶贴?

  •  
  •   paulw54jrn · 2014-09-22 20:06:48 +08:00 · 4775 次点击
    这是一个创建于 3700 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用python可以成功登陆论坛,并且通过了用户验证.
    但是在发帖的时候提示:"的请求来路不正确或表单验证串不符,无法提交。请尝试使用标准的web浏览器进行操作。"
    POST方法的 params, header, data和用Chrome dev tools显示的一模一样.
    大家有碰到这个情况吗?
    10 条回复    2014-09-22 22:54:45 +08:00
    mornlight
        1
    mornlight  
       2014-09-22 20:13:22 +08:00
    你要把打开这个页面时的所有非静态资源请求都看一下,是不是有js执行了某些东西。

    如果你真的模拟了一模一样的请求还不行,那根本和python以及代码没关系,而是整个过程有缺失。
    crab
        2
    crab  
       2014-09-22 20:14:47 +08:00
    你是不是缺少了页面的token参数,或者有检测referer。
    ld0891
        3
    ld0891  
       2014-09-22 20:15:00 +08:00
    是Discuz论坛么?
    如果是Discuz,检查一下Host,Referer,formhash等hash字段填的对不对,有些discuz还要求posttime。
    调HTTP用Firefox好些,用Chrome有些限制字段抓包显示不对的,曾经被坑了好久。
    paulw54jrn
        4
    paulw54jrn  
    OP
       2014-09-22 20:19:00 +08:00
    @mornlight
    @crab
    @id0891
    看页面是Discuz的. Host,Referer跟Chrome显示的一样,formhash用re从页面里面弄下来了. Posttime用time.sleep()延迟了也不行.
    crab
        5
    crab  
       2014-09-22 20:20:49 +08:00
    @paulw54jrn 如果是DZ,应该是formhash错误啦。
    paulw54jrn
        6
    paulw54jrn  
    OP
       2014-09-22 20:26:45 +08:00
    @crab
    formhash可以打印出来,登陆的时候用同样的方式可以把loginhash和formhash拿下来,所以我觉得formhash应该没错(这个没法验证,每个页面的hash都不同..).

    https://gist.github.com/paulw54jrn/b98dda3e8be2c95661d9
    crab
        7
    crab  
       2014-09-22 20:32:49 +08:00
    不懂python,但最后那个post的DZ地址应该是版面,有fid这样的参数地址。
    paulw54jrn
        8
    paulw54jrn  
    OP
       2014-09-22 20:36:00 +08:00
    @crab
    这个是有的呢,在post方式里面通过params传进去,具体的值在param这个dict里面.
    crab
        9
    crab  
       2014-09-22 22:21:36 +08:00
    按你给的那fid=626试了下。
    post地址: http://www.yeeyi.com/bbs/house.php?mod=post&action=newthread&topicsubmit=yes
    这个 Content-Type:multipart/form-data
    ld0891
        10
    ld0891  
       2014-09-22 22:54:45 +08:00
    @paulw54jrn posttime不是sleep搞定的,也是在网页里。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2670 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:44 · PVG 09:44 · LAX 17:44 · JFK 20:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.