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

问一个爬虫的问题。。假若遇到浏览器中显示的内容,和通过右键看到的网页源码不一样的情况用 Python 如何爬取内容呢??

  •  
  •   yanwen ·
    yanwen · 2016-08-03 17:54:26 +08:00 · 11535 次点击
    这是一个创建于 3034 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT

    遇到下面连接这样的情况
    http://bbs.csdn.net/topics/390746446?page=1

    怎么获取内荣呢?

    先谢谢,回复再谢铜
    11 条回复    2016-08-06 07:33:51 +08:00
    bdbai
        1
    bdbai  
       2016-08-03 20:00:39 +08:00 via Android   ❤️ 1
    你要获取内荣啊,基本上两个思路,一个 Selenium 模拟,另一个分析产生的网络请求然后手动模拟。前者简单,后者效率高。
    lululau
        2
    lululau  
       2016-08-03 20:14:02 +08:00 via iPhone   ❤️ 1
    phantomjs
    mornlight
        3
    mornlight  
       2016-08-03 21:07:02 +08:00   ❤️ 1
    不一致不是在反爬虫,是异步加载导致的,右键查看页面源码的时候可能没包含 JS 插进去的内容,比如 Chrome 查看源码会重新页面请求一次,你应该用审查元素来看。
    异步加载的内容需要通过模拟接口的请求来获取内容。
    cszhiyue
        4
    cszhiyue  
       2016-08-03 22:11:46 +08:00   ❤️ 1
    phantomjs 或者 分析 ajax 调用
    isbase
        5
    isbase  
       2016-08-03 22:45:55 +08:00 via Android   ❤️ 1
    推荐 Nightmare
    franklinyu
        6
    franklinyu  
       2016-08-04 00:38:19 +08:00   ❤️ 1
    @mornlight JavaScript 插進去的不算「源碼」吧?爬蟲也不會渲染 JavaScript 部分吧?
    xiaoshangmin
        7
    xiaoshangmin  
       2016-08-04 00:43:19 +08:00 via iPhone   ❤️ 1
    netnetwork 仔细分析其中的 ajax
    abxialiang
        8
    abxialiang  
       2016-08-04 06:19:54 +08:00   ❤️ 1
    一个是模拟浏览器实现全部加载后再解析
    二个是在浏览器里抓包看下,你要的内容是怎么请求到的,直接仿照这个请求就可以
    往往第二个高效直接,当不同网站分析难度不同
    billion
        9
    billion  
       2016-08-04 07:34:25 +08:00   ❤️ 1
    这种情况是因为网页动态加载实现的。
    我不建议使用 Selenium ,因为速度太慢。我建议使用 Chrome 的检查功能来帮助你获取内容。
    我在极客学院有一课专门讲了这种情况的处理方式,请看:
    http://www.jikexueyuan.com/course/1713.html
    slysly759
        10
    slysly759  
       2016-08-05 13:55:26 +08:00   ❤️ 1
    @billion 活捉老师一枚哈哈哈哈~
    另外,题主是没有弄明白 js 调用在 html 页面顶多写一个 script 要的内容是动态展现的 比如我加一个 table 然后用 js 调取数据填入,这就是爬虫眼中所谓的 ajax 啦 很多时候是前端基础太差 不怪别人反扒~
    rocuku
        11
    rocuku  
       2016-08-06 07:33:51 +08:00 via iPhone
    推荐 firefox 的 httpfox ,抓包看看前台显示的东西是通过哪个请求来的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2632 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:24 · PVG 12:24 · LAX 20:24 · JFK 23:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.