现在遇到的问题是有个接口每次刷新页面都会是随机的,但是返回的数据是固定的,我需要每次刷新页面时将这个随机的接口获取到,然后再去请求这个接口以来获取数据,有知道的大神吗,可以交流一下
ps: 是使用 python 去抓取这个 ajax 的请求接口,不是打开控制台去复制粘贴接口,笼统的说就是 python 如何获取浏览器控制台中的数据,可能是我描述的不太清楚,小伙伴们不要理解错误咯
现在遇到的问题是有个接口每次刷新页面都会是随机的,但是返回的数据是固定的,我需要每次刷新页面时将这个随机的接口获取到,然后再去请求这个接口以来获取数据,有知道的大神吗,可以交流一下
ps: 是使用 python 去抓取这个 ajax 的请求接口,不是打开控制台去复制粘贴接口,笼统的说就是 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声明出来就不会报错了).
3 回答3.1k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.9k 阅读
3 回答1.7k 阅读
1 回答1.4k 阅读✓ 已解决
python目前没有找到,使用node可以做到,puppeteer库, 可以看一下我写的关于 puppeteer的文章