【爬虫实战】-爬取微博之夜盛典评论,爬取了1.7w条数据

2024-01-13 23:36

本文主要是介绍【爬虫实战】-爬取微博之夜盛典评论,爬取了1.7w条数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

TaoTao之前在前几期推文中发布了一个篇weibo评论的爬虫。主要就是采集评论区的数据,包括评论、评论者ip、评论id、评论者等一些信息。然后有很多的小伙伴对这个代码很感兴趣。TaoTao也都给代码开源了。由于比较匆忙,所以没来得及去讲这个代码。今天刚好使用这个代码去爬取了一些数据,刚好借着这个机会给大伙讲讲代码思路。

思路讲解:

其实这个代码比较简单,其实就是通过使用request这个python的库向目标url发送对应的请求,然后服务器在相应了请求以后,然后再给数据返回回来。然后我们再对对应的数据进行解析就可以了。

大体上如下图所示:
图画的有的地方不是特别严谨,还请见谅
在这里插入图片描述

代码讲解:

首先需要明确我们需要使用的类库,这里主要使用到的库如下:

import re					# 进行数据正则化
import time				# 跟时间有关,主要是为了请求休眠使用
import csv				# 数据持久化,保存到csv
import random			# 随机化数据
import requests			# request请求的库,主要是为了发送请求
from datetime import datetime	# 进行数据格式化,主要是为了对评论时间进行转换
from fake_useragent import UserAgent		# 模拟各种浏览器,一种反反爬手段

这些库都是需要使用的,所以需要提前安装,安装方法,可以使用pip 进行安装,如果直接安装不上的话,可以使用清华镜像站进行安装,安装方法如下:

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple

然后就是登录weibo账号,然后找到对应的文章点进去,可以看到hotflow,这个其实就是评论的数据。我们点击它,然后就可以看到对应的cookie值了,然后复制它
在这里插入图片描述
之后需要给这个cookie值写在代码中,具体如下:
在这里插入图片描述
设置好cookie之后,就是需要给这个创建request请求了。我们还是回到之前的打开文章的界面复制url链接就可以了。
在这里插入图片描述
之后写如下的代码就完成了request请求的操作了,
在这里插入图片描述
其实现在就可以获取到数据了,但是我们可以看一下,hotflow哪些是我们需要的数据。
可以看到我们需要的是like_count、source、text等这些数据
在这里插入图片描述
在这里插入图片描述
所以我们就需要写下面的代码对数据进行解析,至于为什么要写一个for循环,就是为了迭代多条数据。
在这里插入图片描述
然后就是数据进行持久化了,持久化这里我这里使用的是csv,代码如下:
下面的这个是进行表格以及表头的创建

在这里插入图片描述
下面的是对数据进行保存的操作:
在这里插入图片描述

到这里基本上代码就已经写完了

爬取数据:

完成了上面的代码以后,我们就可以爬取数据了
首先我们需要找到需要爬取文章的id,获取方式如下在这里插入图片描述
然后给这个id复制到代码的下面的位置就可以了在这里插入图片描述
然后就可以爬取数据了,这里可以在pycharm或者cmd中执行都是可以的。我比较喜欢在cmd中执行代码,具体就是在cmd中使用python youcodeName.py就可以了。比较省事的方式其实就是使用pycharm直接run
下面是我在cmd中运行结束的截图

在这里插入图片描述
然后下面的是我爬取到的数据:
在这里插入图片描述
在这里插入图片描述
数据可视化:
拿到了数据,其实我们还可以对数据进行可视化,这样方便观察数据的规律
TaoTao使用pyecharts简单的做了几个,仅供大家参考:
其实我们可以看到有重复数据。我看了一下评论区,其实是有人多刷的,就是说一个账号刷了多条同样的评论。我理解这些人可能是水军。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源码获取:关注“python小胡说”,回复“微博评论”既可获取源码!
希望大家可以动手实践,光说不练假把式!
由于TaoTao能力有限,在一些问题表述上难免有不准确的地方,还请多多包涵!

这篇关于【爬虫实战】-爬取微博之夜盛典评论,爬取了1.7w条数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/603173

相关文章

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左