dataabc / weiboSpider

新浪微博爬虫,用python爬取新浪微博数据
8.37k stars 1.98k forks source link

爬虫到比较后面,视频url获取失败。 #364

Closed endingman closed 3 years ago

endingman commented 3 years ago

答:github版

答:是

答:不确定,没测试其他用户。

答:不确定,没测试其他用户。

答:

答: 爬到后面出现这个,导致爬虫的信息获取不到视频url,微博里有视频,但是数据里面是无。

报错信息: 当前账号没有浏览该视频的权限 local variable 'video_url' referenced before assignment Traceback (most recent call last): File "E:\code\weiboSpider\weibo_spider\parser\page_parser.py", line 296, in get_video_url video_url = to_video_download_url(self.cookie, video_page_url) File "E:\code\weiboSpider\weibo_spider\parser\util.py", line 110, in to_video_download_url return video_url UnboundLocalError: local variable 'video_url' referenced before assignment

dataabc commented 3 years ago

感谢反馈。

一般这是因为视频有某种权限,程序没有权限获取导致的。如果还有疑问,欢迎继续讨论。

endingman commented 3 years ago

不是,是因为我爬取的是视频号,每个微博都有视频的,导致video_url这个爬虫的请求太频繁了,改大了配置的时间间隔也不行。 我不需要下载所以把代码改了,只取page_video_url。 现在可以使用,有没有知道大概多大间隔时间请求才不算频繁?

dataabc commented 3 years ago

这个我也不知道。

endingman commented 3 years ago

在这里问个问题吧,请问第二种定时爬取设置了user_id_list文件,config.json里面的since_date、end_date是留空吗?还是两边都要配置一下?我现在两边配置程序执行后user_id_list文件没更新,只能继续手动更新config.json文件。

dataabc commented 3 years ago

since_date、end_date不能留空。使用user_id_list文件时,如果文件内没有since_date,第一次运行会使用config.json的since_date,以后执行使用文件的(运行一次后文件就生产since_date了),不用手动更新config.json文件。end_date是统一的配置,只能在config.json里配置。

endingman commented 3 years ago

python没用过,不熟悉。从逻辑上来说有没有可能改成多cookie以及ip代理池爬虫,避免速率太快太频繁这种。 就是在爬虫的时候config.json多个cookie随机选择一个,然后开发个ip代理池或者使用其他开源代理池,爬虫的时候也随机选择一个代理ip进行爬虫。 大概就是:"cookies":[cookie1,cookie2...],"proxy_ips":[proxy_ip1,proxy_ip2...],ip代理池可能没法在配置里面,这个好像得开发或者使用其他开源的。

endingman commented 3 years ago

或者不随机,设置成爬取多少个微博/多少页微博后就换个cookie这种,多个循环使用,ip代理池也一样,逻辑上应该是可以的,只是不知道怎么改。

dataabc commented 3 years ago

本项目主要是用于学术研究,加上上面的可能会用于商用,这与项目初衷不符,所以不会在本项目添加上面的特性,希望理解。

endingman commented 3 years ago

理解,我摸索看看,学下python。