【爬虫实战】-爬取微博之夜盛典评论,爬取了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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱