V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kchum
V2EX  ›  Python

求指导解决问题的思路

  •  
  •   kchum · 2014-07-01 12:03:52 +08:00 · 3385 次点击
    这是一个创建于 3797 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求是登陆某https网站,Post数据登陆不成功(没有达到预期),可以考虑哪几个因素(比如Post的数据,伪造Header,cookies,ip被封,还有哪些因素会导致不成功),可以推荐哪些库(现在我用urllib,urllib2)

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

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

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

    现在大多网站都有 csrf token 验证,可能是这个吗?
    kchum
        4
    kchum  
    OP
       2014-07-01 14:54:08 +08:00
    @nodejx @delong 稍微看了下requests,好用
    现在遇到的麻烦是,post信息之后返回一个用js自动提交数据(数据被编码)的页面
    我修改action为本地的php(print_r($_POST)),503了
    delong
        5
    delong  
       2014-07-01 16:39:14 +08:00   ❤️ 1
    获取服务返回后,修改action指向本地?? 我怎不明白lz想要做什么了? 从被人那里拿到的form往称赞吃本地提交,得到一个 503 状态。。。
    kchum
        6
    kchum  
    OP
       2014-07-01 17:10:43 +08:00
    @delong 额,修改action,是想看下他自动提交的数据是什么,所以返回的页面弄成html放在本地提交。可以忽略这个~~
    它返回用js自动提交数据的页面之后,Python运行不了js里面的东西,该如何解决这个问题?我稍微查了下用Pyv8?
    hupantingxue
        7
    hupantingxue  
       2014-07-02 16:09:52 +08:00   ❤️ 1
    这个网站是有多次交互吗?还是除了登陆,你还要做其他动作?
    delong
        8
    delong  
       2014-07-02 17:40:09 +08:00   ❤️ 1
    @kchum 如果只是想知道页面提交了什么数据, 个人感觉直接读一下js源码就好了。
    如果js是压缩过的,那么简单看一下js是提交的form还是ajax,如果是form那直接看html里的input都有什么,如果是ajax建议抓包,如果因为https抓不了那就换个思路,在本地保存的html里执行一下js看看后有什么结果。 第一次尝试提交到本地不是503了么,虽然服务不可用但是提交的数据会有记录的
    kchum
        9
    kchum  
    OP
       2014-07-03 16:07:24 +08:00
    @hupantingxue 是还有其他操作。这个也很莫名其妙,get Url返回一个自动提交的页面,必须Post过去才正确显示登录表单~
    @delong 嗯,已经了,总是很奇怪。前面几次保存页面修改action提交,都完全没提示。后面有返回了。不过最后是用其他方法解决的。
    Anyway,谢谢大家
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   938 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:27 · PVG 05:27 · LAX 13:27 · JFK 16:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.