通过之前爬取新浪微博发现,无论通过http://m.weibo.cn这里,还是http://weibo.cn这里,都没办法获取全部粉丝数据
那如果我想分析一个明星的男女粉丝数据怎么办,比如想知道某明星的男女粉丝占比,可以通过这样一个思路来解决这个问题采集该明星的所有微博
获取每条微博中 评论、点赞、转发 的用户id
根据id获取该用户数据(性别)
用户数据 存储到数据库中
存储到数据库中的用户数据允许重复,出现过一次该用户数据就代表他进行过 评论、点赞、转发 某一项中的一次 ;凡是有参与过的亲密值加一,当这个值超过一定限度时(比如说10或者20),我们就认为该用户是该明星的粉丝
在http://m.weibo.cn站点中 所发所有微博url还是很容易获取
start_urls = ['https://m.weibo.cn/api/container/getIndex?containerid=1076031223178222&page={}' .format(i) for i in range(1, 376)]
这里我们爬取胡歌的粉丝为例,谁叫人们总说胡歌男粉多呢 containerid=1076031223178222 中 1223178222 为用户id,可以自行修改换成其他用户 id
这里可以看到一共有多少微博,一个url大概10条微博,可以试出来大概多少页
代码
import scrapy
import json
from scrapy import Request
from ..items import WeiboFansSpiderItem
class WeiboFansSpdSpider(scrapy.Spider):
name = 'weibo_fans_spd'
start_urls = ['https://m.weibo.cn/api/container/getIndex?containerid=1076031223178222&page={}'
.format(i) for i in range(1, 376)]
repost_url = 'https://m.weibo.cn/api/statuses/repostTimeline?id={}&page={}'
comment_url = 'https://m.weibo.cn