weibo-crawler icon indicating copy to clipboard operation
weibo-crawler copied to clipboard

显示微博爬取完成,共爬取0条微博?

Open Qingyan-Wang opened this issue 4 years ago • 18 comments
trafficstars

请问一下,为什么在运行完weibo.py文件后,进度条显示100%完成,文字提示也是微博爬取完成,但实际上爬取0条微博呢?weibo这个文件夹下也没有生成文件。最近的报错信息如下: Traceback (most recent call last): File "weibo.py", line 561, in get_one_page wb['created_at'], '%Y-%m-%d') File "/Users/opt/anaconda3/lib/python3.7/_strptime.py", line 577, in _strptime_datetime tt, fraction, gmtoff_fraction = _strptime(data_string, format) File "/Users/opt/anaconda3/lib/python3.7/_strptime.py", line 359, in _strptime (data_string, format)) ValueError: time data 'Tue Nov 12 14:31:31 +0800 2019' does not match format '%Y-%m-%d'

我的理解是这是time这个variable遇到了格式的错误,但是不应该影响其他数据的爬取吧?求助请问该怎么解决呢?谢谢!

Qingyan-Wang avatar Aug 29 '21 18:08 Qingyan-Wang

感谢反馈。

你用的不是最新版,更新到最新版就没问题了。

dataabc avatar Aug 30 '21 06:08 dataabc

谢谢回复。我用git源码下载后就可以正常爬取了,但现在还有一个问题请教,就是目前爬取经常在10%、11%就直接停止了,爬取的微博数量大概是所有微博的10%。我重新调整了stop时间,这个问题依然存在。我也翻了一下issue和weibospider的issue,有同学提到可能是有些博主微博数量大的问题要用cookie版本,但是我也检查了目前这些博主的微博数量,发现基本在1000左右,也就是说大概只能爬取到100条。请问这还可能是什么问题呢?运行过程中也没有error提示。error.log里面显示最近的exception如下: Traceback (most recent call last): File "weibo.py", line 406, in download_one_file verify=False) File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 546, in get return self.request('GET', url, **kwargs) File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 533, in request resp = self.send(prep, **send_kwargs) File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 668, in send history = [resp for resp in gen] if allow_redirects else [] File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 668, in history = [resp for resp in gen] if allow_redirects else [] File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 247, in resolve_redirects **adapter_kwargs File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/sessions.py", line 646, in send r = adapter.send(request, **kwargs) File "/Users/opt/anaconda3/lib/python3.7/site-packages/requests/adapters.py", line 529, in send raise ReadTimeout(e, request=request) requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='wx4.sinaimg.cn', port=443): Read timed out. (read timeout=5)

Qingyan-Wang avatar Aug 30 '21 15:08 Qingyan-Wang

可能是网络超时导致出错,也可能和账号有关,有的账号限制比较严格

dataabc avatar Aug 30 '21 15:08 dataabc

网络超时的话可以通过进一步加大stop时间来解决吗?最新的使用情况是有些账号可以完全爬取,有些依然显示read timed out。

Qingyan-Wang avatar Aug 31 '21 06:08 Qingyan-Wang

进一步加大stop试试,可能会有效,这个我也不确定。也可能和网络有关。

dataabc avatar Aug 31 '21 08:08 dataabc

嗯嗯好的,谢谢!那不好意思再请问一个问题,现在这个任务可以部署到google colab上利用google的GPU资源来加快任务进度吗?如果可以的话,是不是也是类似实例中的操作步骤呢?

Qingyan-Wang avatar Aug 31 '21 20:08 Qingyan-Wang

我没把它部署到colab上,不确定。但是程序的速度不是因为计算机限制的,即便部署上应该也和现在差不多。

dataabc avatar Sep 01 '21 06:09 dataabc

噢噢好的谢谢谢谢!还有个问题请教,就是您知道限制ban一般要多久解除吗?还有就是目前我用crawler下载的用户user.csv表中生日,所在地,学习经历,公司,注册时间,阳光信用这几项都是缺失的,但点开一些用户主页发现主页这几项并不是空白的。请问这会是什么样的情况呢?

Qingyan-Wang avatar Sep 01 '21 15:09 Qingyan-Wang

解封大概一天吧,不确定。如果某些项缺失,应该是没有cookie的原因,添加有效cookie就可以了。

dataabc avatar Sep 01 '21 16:09 dataabc

噢噢好的谢谢!请问这个是根据IP封的么?为什么换了IP地址还是会在ban之前断掉的地方继续ban呢?IP地址换了两三个不同的都会在现有的爬取进度处ban掉。

Qingyan-Wang avatar Sep 02 '21 05:09 Qingyan-Wang

有可能是某些微博限制比较严

dataabc avatar Sep 02 '21 06:09 dataabc

嗯嗯,看起来是这样的。我跳过显示ban的用户后又能重新爬取了。不好意思打扰,再请问一下这个可以下载特定认证类型的用户信息和微博内容吗?比如说金V或者蓝V这种

Qingyan-Wang avatar Sep 03 '21 04:09 Qingyan-Wang

这和其他用户的获取没有区别,只是有的可能限制比较严

dataabc avatar Sep 03 '21 07:09 dataabc

嗯嗯,其实我的意思是说我知道某个博主的认证类型为蓝V或者是某某超话主持人,但我不知道他的uid,这种情况下能够抓取到这个博主的信息和微博内容吗?

Qingyan-Wang avatar Sep 04 '21 06:09 Qingyan-Wang

本程序就是让使用者输入uid才能运行,还是你的意思是不指定具体用户,指定认证类型,然后获取类型内的所有用户?本程序没有实现这个特性。

dataabc avatar Sep 04 '21 08:09 dataabc

不好意思才看到,噢噢了解了。嗯嗯我的意思是指定认证类型。谢谢啦!

Qingyan-Wang avatar Sep 07 '21 05:09 Qingyan-Wang