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

怎么用爬虫爬动态需要手动加载部分内容的网页?

  •  
  •   Axurez · 2014-07-19 08:48:32 +08:00 · 4012 次点击
    这是一个创建于 3767 天前的主题,其中的信息可能已经有所发展或是发生改变。
    像百度贴吧、知乎都属于这种。
    百度贴吧,最近好像改成一页只加载一半了。
    知乎的话,评论和个人名片,也是后发送请求获取的。
    像这种页面的爬虫,应该用什么语言怎么写呢?
    10 条回复    2014-07-19 12:05:46 +08:00
    imn1
        1
    imn1  
       2014-07-19 08:56:55 +08:00
    一样的,抓包ajax请求模拟出来就行
    jings
        2
    jings  
       2014-07-19 09:07:15 +08:00 via Android
    写过一种需要手动向下滚动加载 其实url还是不一样的 需要看一下网页源码 找出区别
    shell应该是最好的脚本语言吧 python五十几行的代码几行shell搞定 如果会perl那更好了 shell无非就wget curl > >> while read awk sed columnt就能很好的抓取了 要多线程就要 screen nohup & perl
    lizheming
        3
    lizheming  
       2014-07-19 09:21:26 +08:00
    PhantomJS, CasperJS
    em70
        4
    em70  
       2014-07-19 09:22:34 +08:00 via Android
    需要分析ajax的数据接口来处理,每个网站都要单独分析,没有一劳永逸的办法
    ccbikai
        5
    ccbikai  
       2014-07-19 10:13:21 +08:00
    F12 先找出接口地址,然后模拟浏览器读取数据。
    ddzz
        6
    ddzz  
       2014-07-19 10:34:17 +08:00
    怎么就没人说开浏览器采集
    wibile
        7
    wibile  
       2014-07-19 11:30:24 +08:00
    @ddzz 效率低。。。。还是phantomJS靠谱
    azuginnen
        8
    azuginnen  
       2014-07-19 11:42:14 +08:00
    糙快猛selenium ide
    assassinpig
        9
    assassinpig  
       2014-07-19 11:57:02 +08:00
    贴吧的改了?我要回去试试
    konakona
        10
    konakona  
       2014-07-19 12:05:46 +08:00
    需要用逆向思维做逆向工程。
    你看到的是结果,根据结果一层层剥离出真相(源)。

    比如说去哪儿那种动态的列表,会出现2个问题:
    1.找不到分页number存放的html位置
    2.找不到请求下一页url的规则

    必须在js、html甚至是json里进行反复查证。

    动态页面往往是由多个碎片源返回的数据组成。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1171 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:03 · PVG 02:03 · LAX 10:03 · JFK 13:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.