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
twilight
V2EX  ›  Python

新手请教:如何用 python 请求动态网页,使其得到的内容和浏览器请求一样。

  •  
  •   twilight · 2016-05-31 15:41:30 +08:00 · 5253 次点击
    这是一个创建于 3123 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我试了 urllib 的 urlopen 和 requests 的 get ,得到的都只是静态的内容,网页里的表格内容没有得到。
    13 条回复    2016-05-31 19:58:15 +08:00
    Yc1992
        1
    Yc1992  
       2016-05-31 15:44:45 +08:00
    抓包分析请求
    wizardoz
        2
    wizardoz  
       2016-05-31 15:46:27 +08:00
    表格里面的内容有可能是 ajax 或者 websocket 获取的,并不是在请求页面的时候就有。
    Patrick95
        3
    Patrick95  
       2016-05-31 15:47:56 +08:00   ❤️ 1
    wizardoz
        4
    wizardoz  
       2016-05-31 15:47:58 +08:00
    如果是 ajax 那好办,用浏览器的 F12 看看它请求了什么东西就可以了。
    如果是 websocket 就难办了。
    mrwangrj
        5
    mrwangrj  
       2016-05-31 16:00:05 +08:00   ❤️ 2
    phantomjs
    SlipStupig
        6
    SlipStupig  
       2016-05-31 16:10:26 +08:00
    @wizardoz iframe ajax 表单字段随机化,有没办法不开浏览器能直接跑通
    twilight
        7
    twilight  
    OP
       2016-05-31 16:12:25 +08:00
    感谢各位热心回复。

    搜了搜,好像有用 PythonWebKit 或 PyQtWebKit 来做的。
    wujunze
        8
    wujunze  
       2016-05-31 16:49:17 +08:00
    phantomjs +1
    mingyuejingque
        9
    mingyuejingque  
       2016-05-31 17:24:13 +08:00   ❤️ 1
    phantomjs + 2 , 配合 casperjs 可以搞很多小动作,嘿嘿嘿
    tkpc
        10
    tkpc  
       2016-05-31 17:32:57 +08:00
    system("google-chrome")
    jiezhi
        11
    jiezhi  
       2016-05-31 17:35:16 +08:00   ❤️ 1
    selenium + phantomjs 呢
    xinali
        12
    xinali  
       2016-05-31 17:45:28 +08:00   ❤️ 1
    有两种思路,一种是如果你想分析 js 处理后的网页源码可以使用 selenium+phantomjs ,但是有坑在携带 cookie ,修改 header 等方面。一种是用 requests 获取到网页未经 js 处理的代码,之后分析网页的 js 处理情况并结合 nodejs 对网页进行二次加工,这样而且可以极大的加快你的处理速度,具体的可以看我写的这个 http://xinali.github.io/2016/05/22/python%E5%A4%84%E7%90%86js%E7%BD%91%E9%A1%B5/
    ila
        13
    ila  
       2016-05-31 19:58:15 +08:00 via Android
    @Patrick95 赞同+1
    官方更新后百度得到的资料还是旧的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 14:08 · PVG 22:08 · LAX 06:08 · JFK 09:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.