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

python 爬一个 ajax 网站,用 selenium 来登录后,那么如何获取指定 url 的数据?

  •  
  •   qweweretrt515 · 2016-11-01 23:50:34 +08:00 · 5510 次点击
    这是一个创建于 2936 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这个网站的登录功能设置的变态,算法复杂 没有办法直接用 requests 登录

    所以只能用 selenium 登录

    但是登录后,如何获取指定 url 比如 /getUserinfo 的数据呢 ? 这个链接,直接访问会返回错误 而登录后,进入 页面 /index 的时候 ,/index 页面会自动去 ajax 请求 /getUserinfo 并会返回正确的数据 如何在 /index 页面自动请求 /getUserinfo 的时候,获取到他返回的内容呢?

    另外这个网站,有强烈的声明,发现任何爬虫痕迹就会封号,如何最大程度的看起来像个人在访问呢?

    我要抓取的数据量很小,每天就不到 100 个请求,可能 50 个左右,这个请求量 应该是正常的

    如果我把 selenium 登录后的 cookies 分享给 requests ,会被对方发现是机器人吗?因为 requests 的 header 可能和 selenium 不一样,会被对方发现,或者 selenium 自身有没有类似 requests 这样,可以自定义请求网页的接口?

    8 条回复    2016-11-02 08:27:12 +08:00
    ldbC5uTBj11yaeh5
        1
    ldbC5uTBj11yaeh5  
       2016-11-01 23:51:14 +08:00   ❤️ 1
    selenium 太重了,推荐使用 headless webkit 的方案的。比如 ghostpy
    qweweretrt515
        2
    qweweretrt515  
    OP
       2016-11-02 00:07:56 +08:00
    @jigloo 谢谢, py3.5 安装这个无法正常导入,看来还是先用 selenium
    qweweretrt515
        3
    qweweretrt515  
    OP
       2016-11-02 00:10:48 +08:00
    继续求大神指点
    hshpy
        4
    hshpy  
       2016-11-02 00:24:29 +08:00 via iPhone   ❤️ 1
    WebDriverWait 或直接 time.sleep(10)
    CosimoZi
        5
    CosimoZi  
       2016-11-02 01:15:31 +08:00   ❤️ 1
    哦我明白了, lz 是要得到类似于返回的原始 json 数据之类,而不是渲染后的直接的 html 页面吗
    crab
        6
    crab  
       2016-11-02 01:17:07 +08:00   ❤️ 1
    直接 requests 。 useragent referer 指定下。爬的延迟 控制好就可以了。
    qweweretrt515
        7
    qweweretrt515  
    OP
       2016-11-02 07:01:17 +08:00
    @CosimoZi 主要担心我的爬虫行为会被发现
    arischow
        8
    arischow  
       2016-11-02 08:27:12 +08:00 via iPhone
    最近用 selenium + phantomjs 模拟输入然后抓 ajax 返回结果的……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2887 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:49 · PVG 10:49 · LAX 18:49 · JFK 21:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.