• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ysjdx
V2EX  ›  程序员

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

  •  
  •   ysjdx · Nov 8, 2015 · 6333 views
    This topic created in 3864 days ago, the information mentioned may be changed or developed.

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

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

    @eoo 主要是能否有通用的方法,不需要每个去抓包
    breeswish
        6
    breeswish  
       Nov 9, 2015
    百度对于 ajax 翻页的当然是抓不到了 ╮(╯▽╰)╭
    bengol
        7
    bengol  
       Nov 9, 2015 via Android
    @ysjdx 你想太多了
    oott123
        8
    oott123  
       Nov 9, 2015 via Android
    通用的? CasperJS 行么
    Arrowing
        9
    Arrowing  
       Nov 9, 2015
    用 phantomjs 咯, casperjs 也是基于 phantomjs 开发的
    后台的 webkit ,满足你的要求
    tonyVex
        10
    tonyVex  
       Nov 9, 2015
    有些网站的数据都是 ajax 生成出来,那样的怎么处理?找到请求入口,模拟提交?
    ysjdx
        11
    ysjdx  
    OP
       Nov 9, 2015
    @bengol 额 难道我想多了?
    w3hacker
        12
    w3hacker  
       Nov 9, 2015
    既然是 ajax 的 就有路径 你可以直接通过这个路径获取到数据吧 不过不行 只能用 phantomjs 、 caperjs 了 也很简单
    Light3
        13
    Light3  
       Nov 9, 2015
    ajax 会有提交然后返回参数 你可以看看那个能抓到不
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4078 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 05:15 · PVG 13:15 · LAX 22:15 · JFK 01:15
    ♥ Do have faith in what you're doing.