Closed thelastcookies closed 1 year ago
RT,偶然间发现爬取的某条微博图片数量和实际的不符,然后又观察了一下,所有爬到的微博单条最多都是9张图片。
不想做伸手党,尝试自己解决,看看是不是代码里做了限制,找到 weibo.py 里 get_pics 方法,其中是把拿到的东西全部遍历的。 然后又去看爬到的原始数据,pics 字段里面确实是最多9个图片的 url 字符串。记得 weiboSpider 里面没有这个问题,去看了 weiboSpider 里面爬到的原始数据,和实际的图片数量对得上的。 那么就考虑是不同版本的 api 导致的结果,对照 weiboSpider 发现,此版本用的是 m.weibo.cn 的 api,而 weiboSpider 是 weibo.cn 的 api。 看接口的 url 猜测 m.weibo.cn 是移动端网页的 api,然后去浏览器里面看了下还真是,又找到那一条微博,发现确实只9张照片,与 App 或者新网页版看到的不一样。那么我推测这版使用的是可能已经废弃的 api,没有对 cookie 的强制要求,但是因为已不再维护所以不支持新的功能(图片最多18张)。
唉,那也就是说这个版本的🐛,虽然对 cookie 要求不高,但是代价就是爬到的数据不完整,偷懒还是不得行,要想全部的数据还是得去用 weiboSpider,我这些推测对吗?😭
您加上cookie看看,之前加上cookie是可以获取大于9张的。
我试了一下确实可以,还是少不了 cookie😭,多谢大佬的解答!
RT,偶然间发现爬取的某条微博图片数量和实际的不符,然后又观察了一下,所有爬到的微博单条最多都是9张图片。
不想做伸手党,尝试自己解决,看看是不是代码里做了限制,找到 weibo.py 里 get_pics 方法,其中是把拿到的东西全部遍历的。 然后又去看爬到的原始数据,pics 字段里面确实是最多9个图片的 url 字符串。记得 weiboSpider 里面没有这个问题,去看了 weiboSpider 里面爬到的原始数据,和实际的图片数量对得上的。 那么就考虑是不同版本的 api 导致的结果,对照 weiboSpider 发现,此版本用的是 m.weibo.cn 的 api,而 weiboSpider 是 weibo.cn 的 api。 看接口的 url 猜测 m.weibo.cn 是移动端网页的 api,然后去浏览器里面看了下还真是,又找到那一条微博,发现确实只9张照片,与 App 或者新网页版看到的不一样。那么我推测这版使用的是可能已经废弃的 api,没有对 cookie 的强制要求,但是因为已不再维护所以不支持新的功能(图片最多18张)。
唉,那也就是说这个版本的🐛,虽然对 cookie 要求不高,但是代价就是爬到的数据不完整,偷懒还是不得行,要想全部的数据还是得去用 weiboSpider,我这些推测对吗?😭