python爬取微博评论并做词频分析_爬取李子柒微博评论并分析
爬取李子柒微博评论并分析
微博主要分为网页端、手机端和移动端。微博网页版反爬太厉害,因此选择爬取手机端。
1 需求
爬取李子柒微博中视频的评论信息,并做词频分析。
2 方法
2.1 运行环境
运行平台: Windows
Python版本: Python3.7
IDE: PyCharm
2.2 爬取数据
首先要先找到自己的cookie,认识手机微博端的数据是如何进行加载的。手机微博是使用Ajax动态加载数据。这里以李子柒置顶视频为例,地址为:https://m.weibo.cn/detail/4206005635846050
在开发者工具下,network-xdr下找到以下信息:
此外,还需要对比request url的组成,找出翻页规律:
Request URL: https://m.weibo.cn/comments/hotflow?id=4206005635846050&mid=4206005635846050&max_id_type=0``Request URL: https://m.weibo.cn/comments/hotflow?id=4206005635846050&mid=4206005635846050&max_id=849522136223909&max_id_type=0 https://m.weibo.cn/comments/hotflow?id=4206005635846050&mid=4206005635846050&max_id=168099804860905&max_id_type=0
经过对比发现,翻页时的两个关键信息为max_id和max_id_type,只要找到这两个信息,就可以对url进行拼接,从而实现多次爬取。这两个信息可以在之前返回的json文件中的preview找到。
接下来是爬虫程序的设计:
``
# -*- coding: utf-8 -*-
import requests
import time
import os
import csv
import sys
import json
from bs4 import BeautifulSoup
import importlib
importlib.reload(sys)
# 要爬取热评的起始url
url = 'https://m.weibo.cn/comments/hotflow?id=4206005635846050&mid=4206005635846050&max_id='
# cookie UA要换成自己的
headers = {
'Cookie': '',
'Referer': 'https://m.weibo.cn/detail/4206005635846050',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'
}
def get_page(max_id, id_type):
params = {
'max_id': max_id,
'max_id_type': id_type
}
try:
r = requests.get(url, params=params, headers=headers)
if r.status_code == 200:
return r.json()
except requests.ConnectionError as e:
print('error', e.args)
def parse_page(jsondata):
if jsondata:
items = jsondata.get('data')
item_max_id = {}
item_max_id['max_id'] = items['max_id']
item_max_id['max_id_type'] = items['max_id_type']
return item_max_id
def write_csv(jsondata):
datas = jsondata.get('data').get('data')
for data in datas:
created_at = data.get("created_at")
like_count = data.get("like_count")
source = data.get("source")
floor_number = data.get("floor_number")
username = data.get("user").get("screen_name")
comment = data.get("text")
comment = BeautifulSoup(comment, 'lxml').get_text()
writer.writerow([username, created_at, like_count, floor_number, source,
json.dumps(comment, ensure_ascii=False)])
# 存为csv
path = os.getcwd() + "/weiboComments.csv"
csvfile = open(path, 'w',encoding = 'utf-8')
writer = csv.writer(csvfile)
writer.writerow(['Usename', 'Time', 'Like_count', 'Floor_number', 'Sourse', 'Comments'])
maxpage = 50 #爬取的数量
m_id = 0
id_type = 0
for page in range(0, maxpage):
print(page)
jsondata = get_page(m_id, id_type)
write_csv(jsondata)
results = parse_page(jsondata)
time.sleep(1)
m_id = results['max_id']
id_type = results['max_id_type']
2.3 数据清洗与处理
按照上述代码分别得到五个数据集,但是得到的数据集充满噪声,要对该数据进行清洗,由于本文得到的评论数据已经较为干净,因此主要处理stop word、标点符号和表情符即可。为了简化工作,先用文本整理器软件对空值进行删除。
停词表采用的是哈工大停词表。
python爬取微博评论并做词频分析_爬取李子柒微博评论并分析相关推荐
- 爬取李子柒微博评论并分析
爬取李子柒微博评论并分析 微博主要分为网页端.手机端和移动端.微博网页版反爬太厉害,因此选择爬取手机端. 微博手机端地址:https://m.weibo.cn 1 需求 爬取李子柒微博中视频的评论信息 ...
- python爬虫网易云音乐评论再分析_爬取网易云音乐的评论后,竟有这种发现!
原标题:爬取网易云音乐的评论后,竟有这种发现! 作者 | 志颖 责编 | 胡巍巍 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条. 现在 ...
- python猫眼电影分析_抓取猫眼电影
注意:抓取内容之前一定要查看下Robots协议 1.准备工作 1>第一步,安装python,安装requests.json库. 2.抓取分析 1>接下来我们打开网页分析下猫眼电影排行榜 2 ...
- python期中考试试卷分析_期中考试后如何对试卷进行分析和总结?试卷分析方法总结!...
所谓知识不清,就是在考试之前没有把知识学清楚,丢分发生在考试之前,而不仅仅发生在考试的过程之中. 所谓问题情景不清,就是审题不清,没有把问题看明白,或是不能把问题看明白,这是一个审题能力.审题习惯问题 ...
- 怎么用python爬小说统计词频_python小练习爬取《寻梦环游记》评论并做词频统计...
本来其实是想爬豆瓣电影上10几万条评论的,但后来ip被封了,换代理ip之类的还不熟练,还在学习中,所以先做时光网上10页评论的分析吧,虽然时光网上粗粗一看评论就短了很多,水了很多.主要是继续练习Bea ...
- python爬取豆瓣电影并分析_爬取豆瓣电影top250提取电影分类进行数据分析
标签(空格分隔):python爬虫 一.爬取网页,获取需要内容 我们今天要爬取的是豆瓣电影top250 页面如下所示: 我们需要的是里面的电影分类,通过查看源代码观察可以分析出我们需要的东西.直接进入 ...
- python爬取酷狗音乐的mv地址_爬取酷狗音乐.py
import requests from selenium import webdriver from pyquery import PyQuery as pq #获取歌名 def Access_to ...
- python文本词频统计是字典吗_【python】文章、文本内容做词频统计(使用jieba分词,添加自定义字典)...
使用python可以轻松统计词频,做文章的词频统计也是轻而易举的事情. 1.添加自定义字典(如:超级赛亚人.奥里给等) 2.jieba分词 PS:直接将文章丢进 tf.txt 文件里,将自定义字典丢进 ...
- python新闻评论分析_从新闻文章中提取评论
我的问题和这里问的问题类似: https://stackoverflow.com/questions/14599485/news-website-comment-analysis 我试图从任何新闻文章 ...
最新文章
- HarmonyOS 点击事件的实现
- MATLAB【十三】————仿真函数记录以及matlab变成小结
- PHP eval函数
- 如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本
- 有道精品课python-网易词典在线翻译
- (数字IC)低功耗设计入门(八)——物理级低功耗设计to be continued?
- python 之 click 包,设置命令行参数
- 读取html文件,让其中的内容和notepad打开这个html的样子一样。
- python编程图片大全_Python编程实现的图片识别功能示例
- Python简单GUI(录音机)
- httpservletrequest 设置请求头_大部分程序员不知道的 Servelt3 异步请求,原来这么简单?
- redis的操作笔记
- python爬虫系列第六次笔记之验证码以及代理的使用
- 浏览器错误信息无法解析服务器,win10系统使用搜狗浏览器提示无法解析服务器的dns地址的修复教程...
- 读书笔记:《Being Mortal》
- 使用模块定义文件(.def)文件生成dll
- Go命令行调用Python运行ParlAI模型,同步输入输出并调用百度翻译API翻译
- 论文编辑与投稿——论文页眉、页码编辑,以及换章时偶数页设置成空白页的操作
- html转图片/html2canvas的使用/星座测试/类似于损友圈的活动
- 最新天迹云通信短信分销系统源码+已修复完美版
热门文章
- 不到30秒接满一壶水,352S100 极速净水器体验
- 一文搞懂网卡驱动的原理与移植方法
- 小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题
- php处理证件照_如何使用ps制作证件照
- Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环境。
- OpenOCD+GDB学习记录(1)
- 给夜神模拟器设置好了代理之后,无法上网了,在设置代理之前都能上网的
- 关于大屏拼接方案 触摸屏 红外 和 电容屏
- android 抠图功能吗,抠图宝(抠图宝.和图)V10.01 安卓版
- 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题