爬取李子柒微博评论并分析

微博主要分为网页端、手机端和移动端。微博网页版反爬太厉害,因此选择爬取手机端。

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爬取微博评论并做词频分析_爬取李子柒微博评论并分析相关推荐

  1. 爬取李子柒微博评论并分析

    爬取李子柒微博评论并分析 微博主要分为网页端.手机端和移动端.微博网页版反爬太厉害,因此选择爬取手机端. 微博手机端地址:https://m.weibo.cn 1 需求 爬取李子柒微博中视频的评论信息 ...

  2. python爬虫网易云音乐评论再分析_爬取网易云音乐的评论后,竟有这种发现!

    原标题:爬取网易云音乐的评论后,竟有这种发现! 作者 | 志颖 责编 | 胡巍巍 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条. 现在 ...

  3. python猫眼电影分析_抓取猫眼电影

    注意:抓取内容之前一定要查看下Robots协议 1.准备工作 1>第一步,安装python,安装requests.json库. 2.抓取分析 1>接下来我们打开网页分析下猫眼电影排行榜 2 ...

  4. python期中考试试卷分析_期中考试后如何对试卷进行分析和总结?试卷分析方法总结!...

    所谓知识不清,就是在考试之前没有把知识学清楚,丢分发生在考试之前,而不仅仅发生在考试的过程之中. 所谓问题情景不清,就是审题不清,没有把问题看明白,或是不能把问题看明白,这是一个审题能力.审题习惯问题 ...

  5. 怎么用python爬小说统计词频_python小练习爬取《寻梦环游记》评论并做词频统计...

    本来其实是想爬豆瓣电影上10几万条评论的,但后来ip被封了,换代理ip之类的还不熟练,还在学习中,所以先做时光网上10页评论的分析吧,虽然时光网上粗粗一看评论就短了很多,水了很多.主要是继续练习Bea ...

  6. python爬取豆瓣电影并分析_爬取豆瓣电影top250提取电影分类进行数据分析

    标签(空格分隔):python爬虫 一.爬取网页,获取需要内容 我们今天要爬取的是豆瓣电影top250 页面如下所示: 我们需要的是里面的电影分类,通过查看源代码观察可以分析出我们需要的东西.直接进入 ...

  7. python爬取酷狗音乐的mv地址_爬取酷狗音乐.py

    import requests from selenium import webdriver from pyquery import PyQuery as pq #获取歌名 def Access_to ...

  8. python文本词频统计是字典吗_【python】文章、文本内容做词频统计(使用jieba分词,添加自定义字典)...

    使用python可以轻松统计词频,做文章的词频统计也是轻而易举的事情. 1.添加自定义字典(如:超级赛亚人.奥里给等) 2.jieba分词 PS:直接将文章丢进 tf.txt 文件里,将自定义字典丢进 ...

  9. python新闻评论分析_从新闻文章中提取评论

    我的问题和这里问的问题类似: https://stackoverflow.com/questions/14599485/news-website-comment-analysis 我试图从任何新闻文章 ...

最新文章

  1. HarmonyOS 点击事件的实现
  2. MATLAB【十三】————仿真函数记录以及matlab变成小结
  3. PHP eval函数
  4. 如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本
  5. 有道精品课python-网易词典在线翻译
  6. (数字IC)低功耗设计入门(八)——物理级低功耗设计to be continued?
  7. python 之 click 包,设置命令行参数
  8. 读取html文件,让其中的内容和notepad打开这个html的样子一样。
  9. python编程图片大全_Python编程实现的图片识别功能示例
  10. Python简单GUI(录音机)
  11. httpservletrequest 设置请求头_大部分程序员不知道的 Servelt3 异步请求,原来这么简单?
  12. redis的操作笔记
  13. python爬虫系列第六次笔记之验证码以及代理的使用
  14. 浏览器错误信息无法解析服务器,win10系统使用搜狗浏览器提示无法解析服务器的dns地址的修复教程...
  15. 读书笔记:《Being Mortal》
  16. 使用模块定义文件(.def)文件生成dll
  17. Go命令行调用Python运行ParlAI模型,同步输入输出并调用百度翻译API翻译
  18. 论文编辑与投稿——论文页眉、页码编辑,以及换章时偶数页设置成空白页的操作
  19. html转图片/html2canvas的使用/星座测试/类似于损友圈的活动
  20. 最新天迹云通信短信分销系统源码+已修复完美版

热门文章

  1. 不到30秒接满一壶水,352S100 极速净水器体验
  2. 一文搞懂网卡驱动的原理与移植方法
  3. 小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题
  4. php处理证件照_如何使用ps制作证件照
  5. Eclipse+ GNU ARM Eclipse Plug-in+ Sourcery G++ Lite Edition for ARM+OPENCD+Jlink的开源开发环境。
  6. OpenOCD+GDB学习记录(1)
  7. 给夜神模拟器设置好了代理之后,无法上网了,在设置代理之前都能上网的
  8. 关于大屏拼接方案 触摸屏 红外 和 电容屏
  9. android 抠图功能吗,抠图宝(抠图宝.和图)V10.01 安卓版
  10. 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题