V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ysjdx
V2EX  ›  程序员

[求教]如何让爬虫支持自动 js 翻页?

  •  
  •   ysjdx · 2015-11-08 22:49:49 +08:00 · 5407 次点击
    这是一个创建于 3063 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在研究爬虫,发现多个网站都有 js 翻页的内容,实在不想一个个配模板用 xpath 来解析.想请教各位大神有没有好的思路.

    13 条回复    2015-11-09 21:59:24 +08:00
    ferrum
        1
    ferrum  
       2015-11-08 23:02:33 +08:00 via iPhone
    JS 翻页一般也是发送 post 请求的,看看包的内容,然后模拟。
    ysjdx
        2
    ysjdx  
    OP
       2015-11-08 23:28:03 +08:00
    @ferrum 关键在于有无通用的方法,不然面对太多 url,一个一个去研究效率太低,很好奇百度是如何解决这个问题的
    moosoome
        3
    moosoome  
       2015-11-08 23:44:34 +08:00
    @ysjdx 模拟点击?
    eoo
        4
    eoo  
       2015-11-09 01:24:12 +08:00 via Android
    无非就是用了无刷新翻页而已 ,抓包就能看到 GET 的参数 。
    ysjdx
        5
    ysjdx  
    OP
       2015-11-09 06:35:54 +08:00
    @moosoome 百度会尝试点击页面所有元素?发现新 url 就加入到爬去列表么?还是自动探测看起来象翻页按钮的元素,拟或是有一个非常大的配置库?

    @eoo 主要是能否有通用的方法,不需要每个去抓包
    breeswish
        6
    breeswish  
       2015-11-09 08:19:45 +08:00
    百度对于 ajax 翻页的当然是抓不到了 ╮(╯▽╰)╭
    bengol
        7
    bengol  
       2015-11-09 09:11:01 +08:00 via Android
    @ysjdx 你想太多了
    oott123
        8
    oott123  
       2015-11-09 09:59:59 +08:00 via Android
    通用的? CasperJS 行么
    Arrowing
        9
    Arrowing  
       2015-11-09 10:29:06 +08:00
    用 phantomjs 咯, casperjs 也是基于 phantomjs 开发的
    后台的 webkit ,满足你的要求
    tonyVex
        10
    tonyVex  
       2015-11-09 11:45:32 +08:00
    有些网站的数据都是 ajax 生成出来,那样的怎么处理?找到请求入口,模拟提交?
    ysjdx
        11
    ysjdx  
    OP
       2015-11-09 14:09:59 +08:00
    @bengol 额 难道我想多了?
    w3hacker
        12
    w3hacker  
       2015-11-09 14:35:06 +08:00
    既然是 ajax 的 就有路径 你可以直接通过这个路径获取到数据吧 不过不行 只能用 phantomjs 、 caperjs 了 也很简单
    Light3
        13
    Light3  
       2015-11-09 21:59:24 +08:00
    ajax 会有提交然后返回参数 你可以看看那个能抓到不
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   996 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:10 · PVG 06:10 · LAX 15:10 · JFK 18:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.