【爬虫软件】孔夫子二手书采集

项目演示

孔网爬取图书信息

目录结构

['    |-- api-ms-win-core-synch-l1-2-0.dll','    |-- api-ms-win-core-sysinfo-l1-1-0.dll','    |-- api-ms-win-core-timezone-l1-1-0.dll','    |-- api-ms-win-core-util-l1-1-0.dll','    |-- api-ms-win-crt-conio-l1-1-0.dll','    |-- api-ms-win-crt-convert-l1-1-0.dll','    |-- api-ms-win-crt-environment-l1-1-0.dll','    |-- api-ms-win-crt-filesystem-l1-1-0.dll','    |-- api-ms-win-crt-heap-l1-1-0.dll','    |-- api-ms-win-crt-locale-l1-1-0.dll','    |-- api-ms-win-crt-math-l1-1-0.dll','    |-- api-ms-win-crt-multibyte-l1-1-0.dll','    |-- api-ms-win-crt-process-l1-1-0.dll','    |-- api-ms-win-crt-runtime-l1-1-0.dll','    |-- api-ms-win-crt-stdio-l1-1-0.dll','    |-- api-ms-win-crt-string-l1-1-0.dll','    |-- api-ms-win-crt-time-l1-1-0.dll','    |-- api-ms-win-crt-utility-l1-1-0.dll','    |-- base_library.zip','    |-- libcrypto-1_1.dll','    |-- libopenblas.XWYDX2IKJW2NMTWSFYNGFUWKQU3LYTCZ.gfortran-win_amd64.dll','    |-- libssl-1_1.dll','    |-- pyexpat.pyd','    |-- python3.dll','    |-- python37.dll','    |-- select.pyd','    |-- tcl86t.dll','    |-- tk86t.dll','    |-- ucrtbase.dll','    |-- unicodedata.pyd','    |-- VCRUNTIME140.dll','    |-- VCRUNTIME140_1.dll','    |-- _bz2.pyd','    |-- _cffi_backend.cp37-win_amd64.pyd','    |-- _ctypes.pyd','    |-- _decimal.pyd','    |-- _elementtree.pyd','    |-- _hashlib.pyd','    |-- _lzma.pyd','    |-- _multiprocessing.pyd','    |-- _queue.pyd','    |-- _socket.pyd','    |-- _ssl.pyd','    |-- _tkinter.pyd','    |-- 孔夫子二手书采集.exe','    |-- certifi','    |   |-- cacert.pem','    |   |-- py.typed','    |-- charset_normalizer','    |   |-- md.cp37-win_amd64.pyd','    |   |-- md__mypyc.cp37-win_amd64.pyd','    |-- cryptography','    |   |-- hazmat','    |       |-- bindings','    |           |-- _rust.pyd','    |-- cryptography-41.0.7.dist-info','    |   |-- INSTALLER','    |   |-- LICENSE','    |   |-- LICENSE.APACHE','    |   |-- LICENSE.BSD','    |   |-- METADATA','    |   |-- RECORD','    |   |-- REQUESTED','    |   |-- top_level.txt','    |   |-- WHEEL','    |-- file','    |   |-- output.xlsx','    |-- lxml','    |   |-- builder.cp37-win_amd64.pyd','    |   |-- etree.cp37-win_amd64.pyd','    |   |-- objectify.cp37-win_amd64.pyd','    |   |-- sax.cp37-win_amd64.pyd','    |   |-- _elementpath.cp37-win_amd64.pyd','    |   |-- html','    |   |   |-- clean.cp37-win_amd64.pyd','    |   |   |-- diff.cp37-win_amd64.pyd','    |   |-- isoschematron','    |       |-- resources',
]

概述

毕业前做的小玩意,今天发现居然还能继续使用,孔夫子二手书采集软件可以将您本地的ISBN全部批量查询书籍信息,并切割保存到本地文件。可查询出版社、出版时间、在售/已售数量、可查询前五本的书籍信息

支持多线程采集
在这里插入图片描述

支持质量筛选、价格排序
在这里插入图片描述
原数据预览图
在这里插入图片描述

处理后的数据预览图
在这里插入图片描述

部分核心逻辑

Vb工程图

新建绘制一个VB视图
在这里插入图片描述
导出UI代码
在这里插入图片描述

数据导入与读取

def Command4_Cmd(self):global daoru_state# 打开文件选择对话框file_path = filedialog.askopenfilename(filetypes=[('Excel Files', '*.xlsx')])if file_path:# 加载Excel文件wb = load_workbook(filename=file_path)# 处理Excel文件# ...# 保存Excel文件到本地路径wb.save('file/output.xlsx')daoru_state=1# 提示用户导入成功#获取行数# 加载Excel文件wb = load_workbook(filename='file/output.xlsx')# 获取Sheet1工作表ws = wb.active# 获取行数row_count = ws.max_rowself.Text3Var.set(row_count)

下拉框选择参数

self.style.configure('TLabel5.TLabel', anchor='w', font=('宋体', 9))
self.Label5 = Label(self.Frame4, text='价格:', style='TLabel5.TLabel')
self.Label5.place(relx=0.077, rely=0.234, relwidth=0.234, relheight=0.182)self.style.configure('TLabel6.TLabel', anchor='w', font=('宋体', 9))
self.Label6 = Label(self.Frame4, text='品相:', style='TLabel6.TLabel')
self.Label6.place(relx=0.077, rely=0.584, relwidth=0.196, relheight=0.182)self.Combo2List = ['默认', '价格从低到高', '价格从高到低']
self.Combo2Var = StringVar(value='默认')
self.Combo2 = Combobox(self.Frame4, text='默认', textvariable=self.Combo2Var,
values=self.Combo2List, font=('宋体', 9))
self.Combo2.place(relx=0.383, rely=0.234, relwidth=0.541, relheight=0.146)

设置线程

stop_threads = False  # 全局变量,控制线程的停止
# 总行数
total_rows = ws.max_row
# 线程数
num_threads = int(self.Text4Var.get())
# 每个线程处理的行数
rows_per_thread = math.ceil(total_rows / num_threads)
# 创建线程
threads = []
for i in range(num_threads):
# random_number = random.randint(1, )
start_row = i * rows_per_thread + 1
end_row = min((i + 1) * rows_per_thread, total_rows)
t = threading.Thread(target=process_rows,args=(start_row, end_row, table, self, order, quality, int(requests_spped)))
threads.append(t)# 启动线程
for t in threads:
t.start()# 将全局变量设置为False,表示线程不再执行
global stop_threads
stop_threads = False
# # 等待所有线程结束

使用方法

下载软件

下载压缩包后,解压到桌面,双击软件打开
在这里插入图片描述
在这里插入图片描述

授权

输入授权码123456,完成授权验证
在这里插入图片描述

导入文件

找到演示文件夹,里面有预置数据,你可以根据格式替换成自己的
在这里插入图片描述

在这里插入图片描述

等待数据处理完成
在这里插入图片描述

预览处理后的数据

中间可以随时点击停止
在这里插入图片描述

打开文件夹

在这里插入图片描述

在这里插入图片描述

最后

如果你有定制需求请私信联系我,下载附件前请查看演示视频

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

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

相关文章

表格实现合并单元格

实现的效果 一、列合并 此需求的列合并比较简单, 直接使用el-table-column包括即可 <el-table-column align"center" sortable label"目标"><el-table-column prop"target1" sortable label"预设目标" /><el-table-c…

如何在Linux下搭建接口自动化测试平台

我们今天来学习一下在Linux下如何搭建基于HttpRunner开发的接口自动化测试平台吧&#xff01; 需要在Linux上提前准备的环境&#xff08;下面是本人搭建时的环境&#xff09;&#xff1a; 1&#xff0c;Python 3.6.8 2&#xff0c;MySQL 5.7 一&#xff1a;下载HttpRunner…

JMeter---JSON提取器

JMeter的JSON提取器是一个用于从JSON响应中提取数据的元件。它可以从JSON响应中提取特定字段的值&#xff0c;并将这些值用于后续的测试步骤。 使用JSON提取器的步骤如下&#xff1a; 添加一个HTTP请求&#xff0c;用于获取包含JSON响应的数据。 在HTTP请求之后添加一个JSON提…

JavaScript高级 构造函数与原型篇

构造函数与原型 1、构造函数 构造函数是一种特殊的函数&#xff0c;主要用来初始化对象&#xff0c;即为对象成员变量赋初始值&#xff0c;它总与new一起使用。我们可以把对象中一些公共的属性和方法抽取出来&#xff0c;然后封装到这个函数里面。 // 定义学生构造函数func…

面试遇到了接口分析和测试用例分析题,该如何下手?

只要有软件产品的公司百分之九十以上都会做接口测试&#xff0c;要做接口测试的公司那是少不了接口测试工程师的&#xff0c;接口测试工程师相对于其他的职位又比较轻松并且容易胜任。如果你想从事接口测试的工作那就少不了对接口进行分析&#xff0c;同时也会对测试用例进行研…

软件测试十大必问面试题(附答案和解析)

01 介绍之前负责的项目 参考答案&#xff1a;先大概描述一下这个项目是做什么的&#xff08;主要功能&#xff09;&#xff0c;包括哪些模块&#xff0c;是什么架构的&#xff08;B/S、C/S、移动端&#xff1f;&#xff09;&#xff0c;你在其中负责哪些模块的测试。期间经历了…

【排序算法】C语言实现选择排序与冒泡排序

文章目录 &#x1f680;前言&#x1f680;冒泡排序✈️冒泡排序的逻辑✈️冒泡排序coding &#x1f680;选择排序✈️选择排序的逻辑✈️选择排序coding &#x1f680;前言 这里是阿辉算法与数据结构专栏的第一篇文章&#xff0c;咱们就从排序算法开始讲起&#xff0c;排序算法…

金蝶Apusic应用服务器 loadTree JNDI注入漏洞复现(QVD-2023-48297)

0x01 产品简介 金蝶Apusic应用服务器是一款企业级应用服务器,支持Java EE技术,适用于各种商业环境。 0x02 漏洞概述 由于金蝶Apusic应用服务器权限验证不当,导致攻击者可以向loadTree接口执行JNDI注入,造成远程代码执行漏洞。利用该漏洞需低版本JDK。(漏洞比较旧,8月份…

测试框架|Burp Suite几个基本工具的使用

前阵子项目上想通过测试工具在网页上模拟返回错误代码 500 来查看页面的错误处理&#xff0c;然后去调查了下 burp suite&#xff0c;看了些基本工具的使用文档。虽然最后证实 burp suite 只能用来处理页面测试应用程序的实际行为和响应&#xff0c;而不是尝试模拟不存在的问题…

springboot学习笔记(五)

MybatisPlus进阶 1.MybatisPlus一对多查询 2.分页查询 1.MybatisPlus一对多查询 场景&#xff1a;我有一个表&#xff0c;里面填写的是用户的个人信息&#xff08;姓名&#xff0c;生日&#xff0c;密码&#xff0c;用户ID&#xff09;。我还有一个表填写的订单信息&#x…

4 postman响应数据解析

上一篇:3 使用postman批量创建测试数据-CSDN博客 在接口测试中,从接口的响应结果中获取数据是很常用的。比如说做断言的时候,需要确保接口返回数据是符合预期的。又比如有些接口的输入参数值,需要用到前面接口运行返回的数据。下面先介绍如何解析响应数据(以json数…

持续集成交付CICD:GitLabCI 封装Python类 并结合 ArgoCD 完成前端项目应用发布

目录 一、实验 1. 环境 2. Python代码实现获取文件 3.Python代码实现创建文件 4.Python代码实现更新文件 5.GitLab更新库文件与运行流水线 6.ArgoCD 完成前端项目应用发布 二、问题 1.Python获取GitLab指定仓库文件报错 2. K8S master节点运行Python代码报错 一、实验…

Java日志框架Logback

logback.xml文件配置(放在src下微服务建议放在resources下) <?xml version"1.0" encoding"UTF-8"?> <configuration><!--定义日志文件的存储地址,使用绝对路径--><property name"LOG_HOME" value"d:/logs"/>…

文件上传——后端

文件上传流程&#xff1a; 创建阿里云OSS&#xff08;对象存储服务&#xff09;的bucket 登录阿里云&#xff0c;并完成实名认证&#xff0c;地址&#xff1a;https://www.aliyun.com/. 可以通过搜索&#xff0c;进入以下页面&#xff1a; 点击立即使用后&#xff1a; 点击…

Goby 漏洞发布| 金蝶 EAS createDataSource 路径 jndiName 参数远程代码执行漏洞

漏洞名称&#xff1a;Apusic 应用服务器 createDataSource 远程代码执行漏洞 English Name&#xff1a;Kingdee EAS createDataSource path jndiName parameter remote code execution vulnerability CVSS core: 9.8 影响资产数&#xff1a; 26513 漏洞描述&#xff1a; 金…

[Linux] MySQL数据表(数据结构)管理

一、数据库 1.1 数据库的基本概念 数据库&#xff08;database&#xff09;是用来组织、存储和管理数据的仓库 数据库管理系统&#xff08;DBMS&#xff09;&#xff1a;是实现对数据有效组织&#xff0c;管理和存取的系统软件。 数据的建立和维护功能&#xff0c;数据定义…

重温经典struts1之自定义类型转换器及注册的两种方式(Servlet,PlugIn)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 Struts的ActionServlet接收用户在浏览器发送的请求&#xff0c;并将用户输入的数据&#xff0c;按照FormBean中定义的数据类型&#xff0c;赋值给FormBean中每个变量&a…

java多线程创建的三种方式

第一种 第二种 第三种&#xff08;想获得线程的执行结果&#xff0c;建议使用这种&#xff09;

STM32的以太网外设+PHY(LAN8720)使用详解(3):PHY寄存器详解

0 工具准备 1.野火 stm32f407霸天虎开发板 2.LAN8720数据手册 3.STM32F4xx中文参考手册1 PHY寄存器 前面介绍到&#xff0c;站管理接口&#xff08;SMI&#xff09;允许应用程序通过2线时钟和数据线访问任意PHY寄存器&#xff0c;同时该接口支持访问最多32个PHY&#xff0c;也…

口碑好的国产主食冻干猫粮品牌有哪些?盘点十大放心猫粮国产名单

冻干猫粮可以帮助猫咪摄入更多的水分&#xff0c;因为冻干是高蛋白质的食物&#xff0c;当猫咪吃了冻干猫粮后&#xff0c;会感到口渴&#xff0c;从而更主动地去喝水。对于那些不喜欢喝水的猫咪&#xff0c;可以将冻干复水后再喂给它们&#xff0c;这样也可以增加猫咪的水分摄…