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

2016-11-01 23:50:34 +08:00
 qweweretrt515

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

所以只能用 selenium 登录

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

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

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

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

5453 次点击
所在节点    问与答
8 条回复
jigloo
2016-11-01 23:51:14 +08:00
selenium 太重了,推荐使用 headless webkit 的方案的。比如 ghostpy
qweweretrt515
2016-11-02 00:07:56 +08:00
@jigloo 谢谢, py3.5 安装这个无法正常导入,看来还是先用 selenium
qweweretrt515
2016-11-02 00:10:48 +08:00
继续求大神指点
hshpy
2016-11-02 00:24:29 +08:00
WebDriverWait 或直接 time.sleep(10)
CosimoZi
2016-11-02 01:15:31 +08:00
哦我明白了, lz 是要得到类似于返回的原始 json 数据之类,而不是渲染后的直接的 html 页面吗
crab
2016-11-02 01:17:07 +08:00
直接 requests 。 useragent referer 指定下。爬的延迟 控制好就可以了。
qweweretrt515
2016-11-02 07:01:17 +08:00
@CosimoZi 主要担心我的爬虫行为会被发现
arischow
2016-11-02 08:27:12 +08:00
最近用 selenium + phantomjs 模拟输入然后抓 ajax 返回结果的……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/317250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX