1. 爬虫项目介绍
爬虫首先基于python scrapy 框架,使用了随机用户代理和IP代理等反爬技巧,将爬取到的微博领域数据,各领域榜单博主信息和博主的微博信息分别存入的mysql数据库对应的表格中。
查看爬虫完整代码请移步GitHub:QiliWu/sinaweibo_spidergithub.com
2. 爬虫逻辑
2.1 获取微博领域信息
首先爬取了V影响力榜列出的微博全部领域名称及对应的各领域微博榜单链接。
2.2 获取各领域榜单博主信息
分别进入各领域排行榜页面(以互联网为例),抓取4月 月榜 排名前100的博主相关信息。
分析上述网页发现,博主信息是通过单独请求json文件获得的。
请求的url地址为:
最后面__rnd字段的值起始为请求的时间戳
请求方式为POST, 发送的表单内容为:
其中type, date,domainId字段都可以在主页网址(互联网榜)的源码中获取到。
根据上述分析编写的请求代码如下:
def parse_domain_url(self, response):
match = re.match(r'.*?"currentDate":(\d+).*?"pagetype":"(\d+)".*?"domainId":(\d+).*', response.text, re.S)
date = match.group(1)
type = match.group(2)
domainId = int(match.group(3))
post_data = {'type': type,
'period': 'month',
'date': date,
'pagesize': '100', #一次请求100条博主信息
'page&