微博评论爬取

embedded/2024/11/25 14:37:01/
python">import requests
import csv# 打开CSV文件以写入数据
f = open('data.csv', mode='a', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['昵称', '性别', '归属地', '内容'])
csv_writer.writeheader()# 定义一个函数用于获取评论内容
def GetContent(max_id):# 设置请求头部信息,包括Cookie和User-Agentheaders = {"Cookie": "Your Cookie Here","User-Agent": "Your User-Agent Here"}# 构建请求的URLurl = f'https://weibo.com/ajax/statuses/buildComments?flow=0&is_reload=1&id=5024441672929516&is_show_bulletin=2&is_mix=0&max_id={max_id}&count=20&uid=2286908003&fetch_level=0&locale=zh-CN'# 发起GET请求response = requests.get(url=url, headers=headers)# 解析响应的JSON数据json_data = response.json()# 提取评论数据lis = json_data['data']# 遍历评论数据并写入CSV文件for li in lis:name = li['user']['screen_name']try:ip = li['source'].replace('来自', '')except:ip = '未知'content = li['text_raw']gender = li['user']['gender']if gender == 'f':gender = '女'elif gender == 'm':gender = '男'else:gender = '保密'dit = {'昵称': name,'性别': gender,'归属地': ip,'内容': content,}csv_writer.writerow(dit)# 获取下一页评论的max_idnext_id = json_data['max_id']print(next_id)return next_id# 初始化max_id为空字符串,并循环获取评论数据
max_id = ''
for page in range(10):max_id = GetContent(max_id=max_id)# 关闭文件
f.close()

以上展示的是爬取一则微博帖子评论前10页的代码示例,

主要包括的维度有“昵称”“性别”“归属地”“内容”,

同一个url中的“max_id”值代表不同页的数据内容

默认首页url中“max_id"为空,则其json数据“max_id”键指向的是下一页url中“max_id"

获取页面方法如下:

1.用谷歌浏览器点击进入一条微博链接

2.F12在“网络”中进行过滤“ajax/statuses/buildComments?”

3.选择其中url中带有“max_id"的链接,在代码中更换即可


http://www.ppmy.cn/embedded/12784.html

相关文章

何时需要在嵌入式Linux Devicetree中配置GPIO

GPIO 并不总是需要在 Linux 内核设备树中配置。是否需要在设备树中配置 GPIO 取决于系统中使用和访问 GPIO 的方式。 以下是一些可能需要也可能不需要在设备树中配置 GPIO 的情况: 1. 直接访问 GPIO: 用户空间应用程序使用 sysfs 或字符设备文件等接口直…

F检验的步骤

F检验,也称为联合假设检验或方差齐性检验,主要用于检验两个或多个正态随机变量的总体方差是否相等。它还可以用于检验两个以上随机变量平均数差异的显著性。以下是F检验的一般使用步骤: 提出假设:首先,需要建立原假设&…

Linux:Win10平台上,用VMware安装Centos7.x及系统初始化关键的相关配置(分步骤操作,详细,一篇足以)

VMware安装Centos7.x镜像的详细步骤:VMWare安装Centos系统(无桌面模式) 我这里是为了安装Hadoop集群,所以,以下这些步骤是必须进行的 如果你是学习Linux,可以跳过非必须的那些配置项 我安装的版本是&…

datalist 是什么?以及作用是什么?

datalist 是 HTML5 中引入的一个新元素&#xff0c;它用于为 <input> 元素提供预定义的选项列表。当用户开始输入时&#xff0c;浏览器会显示一个下拉列表&#xff0c;其中包含与输入值匹配的 datalist 中的选项。这使得用户可以更容易地从预定义的选项中选择&#xff0c…

WebSocket的原理、作用、API、常见注解和生命周期的简单介绍,附带SpringBoot示例

文章目录 原理作用客户端 API服务端 API生命周期常见注解SpringBoot示例 WebSocket是一种 通信协议 &#xff0c;它在 客户端和服务器之间建立了一个双向通信的网络连接 。WebSocket是一种基于TCP连接上进行 全双工通信 的 协议 。 WebSocket允许客户端和服务器在 单个TCP连接上…

(2022级)成都工业学院数据库原理及应用实验六: SQL DML(增、删、改)

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、成品仅提供参考 3、如果成品不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 Navicat Premium 16 Mysql 8.0.36 实验要求 在实验三的基础上完成下列查询&#xff1a; 1、在科室表…

课时101:正则表达式_基础实践_字符匹配

3.1.2 字符匹配 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 正则存在的根本就是对数据的匹配&#xff0c;而数据基本上都是有字符组成的&#xff0c;而正则表达式提供了非常多的字符匹配表达式&#xff0c;常见的表达式模式…

Redis篇:缓存更新策略最佳实践

前景&#xff1a; 缓存更新是redis为了节约内存而设计出来的一个东西&#xff0c;主要是因为内存数据宝贵&#xff0c;当我们向redis插入太多数据&#xff0c;此时就可能会导致缓存中的数据过多&#xff0c;所以redis会对部分数据进行更新&#xff0c;或者把他叫为淘汰更合适&a…