Python如何爬取AJAX请求的地址(是接口地址不是数据),也可以说是python如何获取浏览器控制台的数据

现在遇到的问题是有个接口每次刷新页面都会是随机的,但是返回的数据是固定的,我需要每次刷新页面时将这个随机的接口获取到,然后再去请求这个接口以来获取数据,有知道的大神吗,可以交流一下

ps: 是使用 python 去抓取这个 ajax 的请求接口,不是打开控制台去复制粘贴接口,笼统的说就是 python 如何获取浏览器控制台中的数据,可能是我描述的不太清楚,小伙伴们不要理解错误咯

阅读 5.6k
3 个回答

python目前没有找到,使用node可以做到,puppeteer库, 可以看一下我写的关于 puppeteer的文章

随便给你截了个图,F12 networkxhr就是ajax请求的地址,response里面是json格式的数据。
clipboard.png

可以关注我的专栏Python网络爬虫分享

写爬虫要首先确定一个问题:
数据从哪来,谁就是被爬的接口

Example:
xxx.html:
<script>var ajaxUrl="xxxxxxxxx"</script>
xxx.js
$.get(ajaxUrl.......);

你需要的是请求ajaxUrl后响应的数据,所以爬虫最后一步是去请求这个,但是发现ajaxUrl不知道,但是却可以通过请求xxx.html然后从里边用正则取出来(re.findall(r"var ajaxUrl="(.+?)"",rawResponse)[0])然后紧接着发第二个请求。你的ajaxUrl需要从xxx.html中获得,那么就去爬xxx.html好了。

另外,如果ajaxUrl是个很复杂的过程生成的,也可以考虑把那个过程用正则得到纯js代码部分,然后用execjs这些东西去在Python里跑一个js虚拟机直接得到结果。代码可能需要裁剪替换掉一些浏览器特有的对象,例如window对象等等(最开始加一段JS声明出来就不会报错了).

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏