注册
登录
查看:337 | 回复:6
automos
通过requests爬取包含作者全部作品的ajax请求链接的时候,返回的数据不完整,这是怎么回事呢
发表于 2023/4/26 12:41:11
楼主

尝试爬取 Pixiv 中一个作者的全部作品,在详情页抓取到一个 ajax 的数据包,它的 url 在浏览器打开是可以返回所有的数据,但是通过 requests 请求时,只能访问部分数据。

代码如下


爬虫代理IP


拿到的数据如下:

{ error :false, message : , body :{ illusts :{ 56725501 :null, 44981873 :null},...

浏览器请求的数据如下:

{ error :false, message : , body :{ illusts :{ 71282994 :null, 67511354 :null, 64667165 :null, 62930956 :null, 56725501 :null, 54229008 :null, 51870535 :null, 44981873 :null},...

缺失了一部分的作品 id

请问大佬们有什么好的处理办法吗?


silence
发表于 2023/4/26 12:45:15
沙发

你把 requests 请求里加上 headers 试试,如下:

爬虫代理IP

automos
发表于 2023/4/26 12:49:12
板凳

我尝试过了,还是不行,加上headers请求还是不对


automos
发表于 2023/4/26 12:53:43
4楼

我尝试通过 selenium 登陆拿到网站的 cookie 进行模拟登陆,但是拿到的数据还是不对


爬虫代理IP

爬虫代理IP


Jason
最佳答案 发表于 2023/4/26 12:57:23
5楼

这个网站要登入才能获取完整的资料


爬虫代理IP

爬虫代理IP


automos
发表于 2023/4/26 12:59:10
6楼

对,这个是的,如果没办法的话只能使用selenium了,我开始的想法是通过selenium登录然后拿到他的cookie用他的cookie通过requests进行模拟登录

selenium还是速度太慢了

cannot
发表于 2023/4/26 13:00:19
7楼

一模一样的问题,id 数不完整,反复用 len () 确认发现少了一些,后来听楼上的加 cookie, 把 cookie 怼进请求头 (懒方法) 解决,获得了完整 work_id


立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品