【爬虫实战】今日头条-关键词搜索-快速整理出1w条数据

快速整理头条关键词数据工具,学习效率妥妥翻倍!!!本案例源码仅供学习参考!

项目功能简介:

1.可视化式配置;

2.任意关键词;

3.自动翻页;

4.支持指定最大翻页页码;

5.数据保存到csv文件;

6.程序支持打包成exe文件;

7.项目操作说明文档;

8.多线程并发(根据系统内核数、输入的线程数、关键词数量,计算出最合理的最终线程数);

9.支持爬虫暂停;

10.预留数据库配置,方便二次开发;

一.最终效果

运行过程:

保存数据到csv:

二.项目代码

2.1 编写界面

该脚本的界面使用PyQt5库开发,经过测试这个库的运行时性能要优于Tkinter,特别是实在多数据数据表单滑动,Tkinter卡顿太严重,因此我们使用性能出色的PyQt5来实现,界面编写过程大致如下:

class MyForm(QWidget):update_table_signal = pyqtSignal(dict)def __init__(self):super().__init__()...self.initUI()def initUI(self):# 设置窗口属性self.setGeometry(100, 100, 1000, 600)self.setWindowTitle('头条·任意关键词·可视化爬虫')self.center_on_screen()# 在垂直布局中添加第一排和第二排的水平布局self.layout = QVBoxLayout()self.fileButton = QPushButton('选择关键词文件(.csv)', self)self.fileButton.clicked.connect(self.openFileDialog)self.layout.addWidget(self.fileButton)self.directoryLabel = QLabel(self)  # 添加一个标签来显示用户选择的目录路径self.layout.addWidget(self.directoryLabel)# 第二排self.layout_row2 = QHBoxLayout()self.btn_start = QPushButton('开始采集')self.btn_stop = QPushButton('停止采集')self.btn_stop.setEnabled(False)self.label_delay = QLabel('延时')...
2.2 多线程,更方便,更速度

自定定义多线程获取数据、自定义每次获取数据的间隔时长,自定翻页,获取完成自动停止;

三.批量保存数据

数据保存继续使用pandas库,安装: pip install pandas,使用pandas批量保存,用法如下:

import pandas as pd
list = [{"keywords":"",..."like":"",},{"keywords":"",..."like":"",}
]
df = pd.DataFrame(list)
df.to_csv('result.csv', index=False, columns=["keywords", "nickname", "publish_time", "device_info", "weibo_content", "forward", "comment", "like"])

四.运行日志

多线程日志:

开始请求第1页...
开始请求第1页...
开始解析第1页数据...
开始解析第1页数据...
数据保存中...
数据保存中...
共有50页:
共有50页:
开始请求第2页...
开始请求第2页...
开始解析第2页数据...
数据保存中...
开始解析第2页数据...
数据保存中...
开始请求第3页...
开始请求第3页...
开始解析第3页数据...
数据保存中...
触发调试配置的最大页码数3,已停止当前关键词的爬取!
开始解析第3页数据...
数据保存中...
触发调试配置的最大页码数3,已停止当前关键词的爬取!

五.项目说明文档

::: block-1

项目说明

安装 python3

到官网下载 python 3.8.x 版本安装包,根据提示安装(windows 请勾选添加环境变量复选框)

注意:python3.8.x,不能是 3.9+(否则 pyinstaller 打包时可能报错)

本地运行

pip install pandas bs4 PyQt5python3 main.py

开始打包

pyinstaller -F -w --name '头条·任意关键词·可视化爬虫' main.py (没有 main.spec 文件用此命令)
或者
pyinstaller main.spec (有 main.spec 文件可用此命令)

:::

六.获取完整源码

爱学习的小伙伴,本次案例的完整源码,已上传微信公众号:一个努力奔跑的snail,后台回复 头条关键词 即可获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Foxit Reader高亮与下划线全指南:标记文档的大师级技巧

🖍️ Foxit Reader高亮与下划线全指南:标记文档的大师级技巧 Foxit Reader是一款功能强大的PDF阅读器,它提供了一系列的注释工具,包括高亮和下划线,以增强用户的阅读体验和文档交互性。本文将详细介绍如何在Foxit Rea…

IP地址网络号:解读其构成与重要性

在数字化时代,IP地址已成为我们网络生活不可或缺的一部分。每个设备在网络中都有一个独特的IP地址,这个地址由网络号和主机号组成,它们共同构成了我们的网络身份。其中,网络号的作用尤为重要,它决定了设备所连接的网络…

k8s特殊节点,特殊应用,节点只部署该应用,应用只部署在该节点。

在 Kubernetes 集群中,你可以通过使用 nodeSelector、nodeAffinity 和 taints 与 tolerations 来将一个 deployment 部署到指定的节点上,并确保该节点上只运行此 deployment。以下是具体步骤: 给目标节点打标签: 选择一个节点&…

【算法专题--栈】用栈实现队列 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双栈 模拟 队列 🥝栈 和 队列 的特性 🍍具体思路 🍍案例图解 四、总结与提炼 五、共勉 一、前言 用栈实现队列 这道题,可以说是--栈专题--,最经典的一道题&…

管理上的一些思考

1 前言 管理可分为自我管理、平级管理、向下管理和向上管理。 顾名思义,自我管理就是对自己工作、生活等各方面的规划和执行,不涉及与其他人互动、配合等。我们设定人生目标、年度计划、月计划等,都可以认为是自我管理。《增广贤文》有段很…

点云处理实操 三维重建(一)

目录 一、什么是三维重建 二、三维重建技术路线 三、PCL在三维重建中的地位 一、什么是三维重建 三维重建(3D Reconstruction)是一种计算机图形学和计算机视觉技术,用于从二维图像或其他数据源重建物体或场景的三维模型。三维重建的应用非常广泛,包括医学影像分析、虚拟…

Zoom虚拟背景全攻略:打造个性化视频会议空间

标题:Zoom虚拟背景全攻略:打造个性化视频会议空间 摘要 在视频会议中,背景不仅能够反映个人品味,还能保护隐私。Zoom提供了虚拟背景功能,允许用户自定义会议中的背景。本文将详细介绍如何在Zoom中设置和使用虚拟背景…

静态时序分析:ideal_clock、propagated_clock以及generated_clock的关系及其延迟计算规则(二)

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html?spm1001.2014.3001.5482 生成时钟 上一节中,我们讨论了理想时钟和传播时钟的创建和使用,本节将讨论生成时钟及其与理想时钟和传播时钟的关系。 图1所示的是一个简…

使用window.open打开新窗口的参数设置

使用window.open打开新窗口的参数设置 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在本文中,我们将深入探讨如何使用JavaScript中的window.open方…

Spring Security 概述

Spring Security 是 Spring 框架的一个重要子项目,专注于为 Java 应用程序提供全面的安全保障。它能够轻松集成到 Spring 应用程序中,提供强大的身份认证和授权功能,保护应用程序免受常见的安全威胁。 Spring Security 的功能 Spring Secur…

Mysql基本知识点

1.数据库的基本操作 显示当前的数据库 show databases;创建一个数据库 直接创建数据库 create database 数据库名字;如果系统没有 test2 的数据库,则创建一个名叫 test2 的数据库,如果有则不创建 create database if not exists test2;如果系统没有 db…

【网络】计算机网络-基本知识

目录 概念计算机网络功能计算机网络的组成计算机网络的分类 网络地址网络地址的分类 计算机网络相关性能指标速率带宽吞吐量时延时延的种类: 时延带宽积往返时延RTT利用率 概念 计算机网络是指将多台计算机通过通信设备连接起来,实现数据和资源的共享。…

【DevOps】Elasticsearch集群JVM参数调整及滚动重启指南

目录 概述 准备工作 滚动重启步骤 1. 禁用分片分配(可选) 2. 关闭索引写操作 3. 检查集群状态 4. 重启Master节点 5. 重启Data节点 6. 重新开启索引写操作 7. 启用分片分配(如果之前禁用了) 8. 监控集群状态 结论 概述…

串口小工具(来源网络,源码修改)

从CSDN 中的一位博主的分享做了一些修改 QtSerial 的配和更稳定些 信号和槽 … … 更不容易崩 # This Python file uses the following encoding: utf-8 import sys import timefrom PySide6.QtGui import QIcon, QTextCursor from PySide6.QtWidgets import QApplication, QWi…

第3章_UART 开发基础

文章目录 第3章 UART 开发基础3.1 同步传输与异步传输3.1.1 概念与示例3.1.2 差别 3.2 UART 协议与操作方法3.2.1 UART 协议3.2.2 STM32H5 UART 硬件结构3.2.3 RS485 协议 3.3 UART 编程3.3.1 硬件连接3.3.2 三种编程方式3.3.3 查询方式3.3.4 中断方式3.3.5 DMA 方式 3.4 效率最…

扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下,文档扫描功能…

【JavaEE】JVM

文章目录 一、JVM 简介二、JVM 运行流程三、JVM 运行时数据区1、堆(线程共享)2、Java虚拟机栈(线程私有)3、本地方法栈(线程私有)4、程序计数器(线程私有)5、方法区(线程…

如何有效保护生物医药企业隔离网数据导出的安全性?

生物医药企业的核心数据保护至关重要,企业为了保护内部的核心数据,会将网络进行物理隔离,将企业内⽹与外⽹隔离。⽹络隔离后,仍存在重要数据从内网导出至外网的隔离网数据导出需求。以下是一些需要特别保护的核心数据类型&#xf…

【快速排序】| 详解快速排序 力扣912

🎗️ 主页:小夜时雨 🎗️专栏:快速排序 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过快速排序的核心代码&a…

macosx M1启动nacos2.2.0出现下面的错误java.lang.UnsatisfiedLinkError

macosx M1启动nacos2.2.0出现下面的错误: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creatingbean with name instanceOperatorClientImpl defined in URL [jar:file:/Users/dove/opt/nacos/target/nacos- server.jar!/BOOT-INF/…