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

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

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

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

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

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