- 前言:
本次爬取的是新浪微博移动端(https://m.weibo.cn/),爬取的数据是用户微博首页的第一条微博(如下图),包括文字内容、转发量、评论数、点赞数和发布时间,还有用户名和其所在地区(后面可以分析不同地区微博用户的关心的热点话题)。
- 开发工具
Python版本:3.6 相关模块:
import scrapy
from sinaweibo.items import SinaweiboItem
import json
import re
import copy
- 分析网页
浏览发现使用的是使用Ajax渲染的网页,微博数据(https://m.weibo.cn/api/container/getIndex?containerid=102803_ctg1_5088-ctg1_5088&openApp=0&since_id=1)存储在json格式网页中,所以思路是先通过微博数据得到用户url(如下图),再来爬取后续内容。
获取第一条微博数据 也是使用了Ajax渲染的网页,跟上面一样找到网页入口就行了。请求网址如下:
这样看网址的话毫无规律可言,简化后发现 https://m.weibo.cn/api/container/getIndex?containerid=1076032554757470就可以进入。而且containerid=107603(***)这里,括号里的数字刚好是用户的id号,因此我们可以通过这个来构造网页。
- 获取用户所在地区
用户所在地在其基本资料中,如下图
地址为:
同样进行简化得到:https://m.weibo.cn/api/container/getIndex?containerid=230283(***)-INFO其中括号里面是用户i