dataabc / weibo-crawler

新浪微博爬虫,用python爬取新浪微博数据,并下载微博图片和微博视频
3.25k stars 739 forks source link

数据不全 #392

Open SASGOGOGO opened 11 months ago

SASGOGOGO commented 11 months ago

每次只进行到一半就结束,频繁出现进行不下去提前结束想问下什么情况? progress没走完就说信息抓取完毕

SASGOGOGO commented 11 months ago

image

SASGOGOGO commented 11 months ago

没加cookie 加了cookie不知道会不会好?

dataabc commented 11 months ago

有可能是满足since_date就停了,程序只会获取它之后的微博。

SASGOGOGO commented 11 months ago

image 我把since_data都调到1960年了,不应该全部获取嘛?

dataabc commented 11 months ago

加上cookie看看。

SASGOGOGO commented 11 months ago

image 还是不行,一直采集不到数据是什么情况

SASGOGOGO commented 11 months ago

image

dataabc commented 11 months ago

我也不清楚,有可能是速度太快被暂时限制了,过段时间再看看。

void285 commented 9 months ago

第一次用,一个uid,抓取了42页之后也不再抓取了,已开启cookie。

void285 commented 9 months ago

一个bug,非初次运行程序时,会读取user_id_list.txt中已写入的上次运行结束时间作为since_date,而不是以config中写的为准,导致后面怎么运行都报任务已完成。

dataabc commented 9 months ago

@void285 1.有可能是cookie失效了,换个看看;2.不是bug,是有意为之,为了提高效率,减少重复爬起取。因为txt是可以手动添加新ID的,如果使用统一since_date,为了获取新ID微博,旧ID也要爬,就重复了。现在更灵活,可以单独为每个ID配置单独的日期,自动更新日期,减少重复,效率也更高。

void285 commented 9 months ago

之前编辑了一次,没发布成功。如您所说,可能不是bug,只是跟直观的预期结果不大一致。之前编辑的内容再贴一下:

一个可能的设计bug:非初次运行程序时,会优先读取user_id_list.txt中已写入的上次运行任务的时间作为since_date,而不是以config中写的为准,导致后面怎么运行都报任务已完成。 如果一直追新,这个设计可以保证从上次停止的地方下载全部到当前的更新,但如果是在下载之前的微博,而中间中断了,再运行时,如果自动写入user_id_list.txt的时间点比config里面设置的晚,就下载不到需要的条目了。

dataabc commented 9 months ago

@void285 感谢反馈。这个应该是逻辑问题,假如某次下载中断了,到底要不要更新txt。如果更新了,下次可能漏爬;如果不更新,下次可能重复爬。程序选择了前者,如果想选后者,需要修改代码,删除中断时更新txt的代码即可。