python 爬虫 爬微博分析 数据
最近刚看完爱情公寓5,里面的大力也太好看了吧。。。
打开成果的微博,小作文一样的微博看着也太爽了吧。。。
来 用python分析分析 狗哥这几年微博的干了些啥。
需要的工具有:
scrapy + pyecharts + pymysql
这些库的使用我就不说自己百度学吧。
第一步:当然是进入狗哥的微博分析了
这里我推选 微博 手机版的网站,因为手机版的网站比较简单 , 没那么花里胡哨 提取信息方便一点
点击上述图片的位置
然后刷新下网站,加载json数据
通过分析这个就是加载微博数据的json文件 ,打开看一下
里的data->cards->mblog,就是存放微博文章的各种信息,比如文章 点赞数,评论数等等。
把这个json文件翻到最下面
看到最下面的是1月29号发的微博,也就是说一个json文件存了3月15号到1月29号的微博
那么怎么获取 1月29号前面的呢?
这里仔细分析还是有规律的
我们在狗哥的主页上向下翻,翻到最后面会自己滚动加载新的json文件
新加载的json文件
打开后把前一个连接与这个比较一些
仔细发现 前面都一样,唯一不同的是后面
第二个加载的多了一盒since_id
然后我们打开第一和json文件
这里有个since_id
这时我们就可以大胆推测一下了
第一次加载的json文件里面有个 since_id
而这个 since_id 也就是下一个 要加载的json文件
然后下一个的 json文件里的since_id 也就是下一个的下一个的json文件
………………………………
这样就可把所有的json文件找出来了
你也可以自己找几个验证一下
有了这些数据那就开始爬虫了
第二部:爬取数据
我们可以设置 :start_urls 为第一个出现的json文件连接
since_id # 下下面的id created_at # 创建的日期 text # 发布的内容 source # 发布文章的设备 scheme # 原文连接 reposts_count # 转发数量 textLength # 文章字数 comments_count # 评论个数 attitudes_count # 点赞个数
这些是 json里面的数据,可以直接通过字典来获取
然后我也直接贴代码了
import json
import scrapy
from weibo.items import WeiboItem
from bs4 import BeautifulSoup
class weibo_spider(scrapy.Spider):
name = "weibo"
start_urls =["https://m.weibo.cn/api/container/getIndex?uid=1927305954&t=0&luicode=10000011&lfid=100103type%3D1%26q%3D%E6%88%90%E6%9E%9C&type=uid&value=1927305954&containerid=1076031927305954"]
url = "https://m.weibo.cn/api/container/getIndex?uid=1927305954&t=0&luicode=10000011&lfid=100103type%3D1%26q%3D%E6%88%90%E6%9E%9C&type=uid&value=1927305954&containerid=1076031927305954&since_id="
#start_urls = ["https://m.weibo.cn/"]
allowed_domains = ["weibo.com", "weibo.cn"]
since_id = "" # 下下面的id
created_at = "" # 创建