【爬虫实战】今日头条-关键词搜索-快速整理出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,一经查实,立即删除!

相关文章

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

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

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

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

管理上的一些思考

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

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

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

Mysql基本知识点

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

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

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

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

从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…

围观AI大佬吴恩达教授开发的Agent智能体

最近 Agent 智能体很火,人工智能领域国际上最权威的学者之一吴恩达教授,不但总结了Agent设计模式,还亲自下场开发了一款翻译Agent。 这个翻译Agent在设计模式和提示词工程等方面都有许多值得学习的地方。老渡拆解一下,跟朋友们分…

你需要明白的JVM相关问题

1、说说内存溢出跟内存泄漏的区别? 内存泄露:申请的内存空间没有被正确释放,导致内存被白白占用。内存溢出:申请的内存超过了可用内存,内存不够了。可能是泄漏导致的。 2、如何判断对象仍然存活?jvm是怎么…

mysql数据库的主从复制

MySQL主从复制的应用场景 当只有一台MySQL服务器要负责读写时,对于安全性,高可用,高并发等需求就不能满足,因此就要建立集群,集群的基础就是主从复制。 原理(过程) MySQL支持的复制类型 基于语…

有关主流编程语言的几个问题及对比

参考:编程语言的历史(https://blog.csdn.net/david_lv/article/details/104765347) 静态与动态语言的优缺点分析 什么是强类型,什么是弱类型?哪种更好些?为什么? 强类型和弱类型的区别 几种常见的开发语言…

【Kubernetes学习】

K8S基础概念一 一、k8s是什么?二、k8s功能三、k8s组件四、k8s概念总结 一、k8s是什么? kubernetes,简称k8s,是一个全新的基于容器技术的分布式架构领先方案,是谷歌严格保密十几年的秘密武器----Borg系统的一个开源版本…

kicad第三方插件安装问题

在使用KICAD时想安装扩展内容,但是遇到下载失败,因为SSL connect error。 因为是公司网络,我也不是很懂,只能另寻他法。找到如下方法可以曲线救国。 第三方插件包目录 打开存放第三方插件存放目录,用于存放下载插件包…

电子电路学习笔记(3)三极管

部分内容参考链接: 电子电路学习笔记(5)——三极管_三极管 箭头-CSDN博客 模拟电子技术基础笔记(4)——晶体三极管_集电结的单向导电性-CSDN博客 硬件基本功-36-三极管Ib电流如何控制Ic电流_哔哩哔哩_bilibili 部分…

【面试系列】数据工程师高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…