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

项目演示

孔网爬取图书信息

目录结构

['    |-- 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.rhkb.cn/news/222462.html

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

相关文章

初级数据结构(七)——二叉树

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;六&#xff09;——堆 | NULL 下一篇-> 1、写在前面 二叉树的基本概念在《初级数据结构&#xff08;五&#xff09;——树和二叉树的概念》中已经介绍得足够详细了。上一…

java开发需要掌握的TypeScript相关的知识点,细致简洁版。

Typescript&#xff1a; 介绍&#xff1a; TypeScript&#xff08;简称 TS&#xff09;是JavaScript的超集&#xff08;继承了JS全部语法&#xff09;&#xff0c;TypeScript Type JavaScript。 简单说&#xff0c;就是在JS的基础上&#xff0c;为JS添加了类型支持。是微软开…

分享一套国内功能齐全的开源MES/免费MES/MES源代码

一、系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES、好看的数字大屏。 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理&#xff0c;车间基础数据管理&#xff0c;计划管理…

大模型之二十一-小语言模型塞道开启

当前提到大语言模型&#xff0c;大家想到的都是动辄百亿规模以上参数量的模型&#xff0c;13B、70B都是稀疏平常入门级的&#xff0c;但是目前从模型层面来看&#xff0c;模型参数量的规模两极分化已经来临&#xff0c;早期各大公司为了效果怼上去&#xff0c;采取了简单粗暴的…

Jmeter 性能测试 —— 评估一个系统TPS与并发数!

问题&#xff1a;性能压测&#xff0c;如何评估一个系统的TPS和并发数&#xff1f; 1、对于新系统 由业务部门或开发人员预估交易量和TPS指标 可以参考公式&#xff1a;并发用户 在线用户数 * 10%。 当一个系统还没有上线时&#xff0c;我们可以预判的是这个系统准备要给多…

【数字图像处理】实验一 图像基本运算

图像基本运算 一、实验内容&#xff1a; 1&#xff0e; 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理基本步骤。 2&#xff0e; 熟练掌握各种图像点运算的基本原理及方法。 3&#xff0e; 能够从深刻理解点运算&#xff0c;并能够思考拓展到一定的应用领…

MatGPT - 访问 OpenAI™ ChatGPT API 的 MATLAB® 应用程序

系列文章目录 前言 MatGPT 是一款 MATLAB 应用程序&#xff0c;可让您轻松访问 OpenAI 的 ChatGPT API。使用该应用程序&#xff0c;您可以加载特定用例的提示列表&#xff0c;并轻松参与对话。如果您是 ChatGPT 和提示工程方面的新手&#xff0c;MatGPT 不失为一个学习的好方…

【Linux】编辑、查看和搜索文件

大多数 Linux 发行版不包含真正的 vi;而是自带一款高级替代版本&#xff0c;叫做 vim(它是“vi improved”的简写)由 Bram Moolenaar 开发的&#xff0c;vim 相对于传统的 Unix vi 来说&#xff0c;取得了实质性进步。 启动和退出 vim 使用vim可以启动&#xff0c;如命令行输…

MySQL概括与SQL分类

文章目录 一、计算机语言二、SQL语言三、数据库系统四、MySQL简介 一、计算机语言 二、SQL语言 三、数据库系统 四、MySQL简介

竞赛保研 基于CNN实现谣言检测 - python 深度学习 机器学习

文章目录 1 前言1.1 背景 2 数据集3 实现过程4 CNN网络实现5 模型训练部分6 模型评估7 预测结果8 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于CNN实现谣言检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&am…

搭建知识付费平台?明理信息科技为你提供全程解决方案

明理信息科技saas知识付费平台 在当今数字化时代&#xff0c;知识付费已经成为一种趋势&#xff0c;越来越多的人愿意为有价值的知识付费。然而&#xff0c;公共知识付费平台虽然内容丰富&#xff0c;但难以满足个人或企业个性化的需求和品牌打造。同时&#xff0c;开发和维护…

搭载紫光展锐芯的移远通信RedCap模组顺利通过中国联通OPENLAB实验室认证

近日&#xff0c;移远通信联合紫光展锐在中国联通5G物联网OPENLAB开放实验室&#xff0c;完成了RedCap模组RG207U-CN端到端测试验收&#xff0c;并获颁认证证书。移远通信RG207U-CN成为业内率先通过联通OPENLAB认证的紫光展锐RedCap芯片平台的模组。 本次测试基于联通OPENLAB实…

Golang 的内存管理

文章目录 1.内存管理角色1.常见的内存分配方法线性分配器空闲链表分配器TCMalloc 2.Go 内存管理组件mspanmcache初始化替换微分配器 mcentralmheap 3.内存分配4.内存管理思想参考文献 1.内存管理角色 内存管理一般包含三个不同的组件&#xff0c;分别是用户程序&#xff08;Mu…

【C语言】指针详解(二)

目录 1.指针变量类型的意义 1.1指针的解引用 1.2指针 - 整数 1.3void*指针 2.const修饰指针 2.1const修饰变量 2.2const修饰指针变量 1.指针变量类型的意义 1.1指针的解引用 指针变量的大小和类型无关&#xff0c;只要是指针变量&#xff0c;在同一个平台下&#xff0…

制作成电子版的五金产品册,打开线上消费市场

五金产品作为家庭装修和维修的必备之物&#xff0c;一直深受广大用户的喜爱。然而&#xff0c;传统的五金市场存在着诸多问题&#xff0c;如产品信息不透明、价格混乱、购买不便等。这些问题不仅影响了消费者的购物体验&#xff0c;也制约了五金行业的进一步发展。 现在很多人都…

《Python Advanced Programming + Design Patterns + Clean Code》

清洁代码 — 学习如何编写可读、可理解且可维护的代码 高级Python编程知识 Python之常用设计模式 Advanced Programming装饰器 decorators生成器 & 迭代器with 上下文管理器面向对象Mixin 模式反射机制并发编程 Design Patterns设计模式分类简单工厂模式工厂模式 √抽象工厂…

读取spring boot项目resource目录下的文件

背景 项目开发过程中&#xff0c;有一些情况下将配置文件放在resource下能简化代码实现和部署时的打包步骤。例如&#xff1a; 项目中使用的数据库升级脚本、初始化脚本。将文件放到resource下&#xff0c;打包在jar包中&#xff0c;不能直接通过File路径读取。下面介绍两种读…

法线贴图实现衣服上皱褶特效

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 法线贴图在3D建模中扮演着重要的角色&#xff0c;它通过模拟表面的微…

AngularJS

理解实现代码的逻辑为主要&#xff0c;代码怎么写为次要。 参考资料&#xff1a; 《AngularJS入门与进阶》&#xff0c;江荣波著 前端开发常用框架 React&#xff1a;由Facebook开发&#xff0c;用于构建用户界面的JavaScript库&#xff0c;以组件化和虚拟DOM著称。 Angular&…

Android应用-flutter使用Positioned将控件定位到底部中间

文章目录 场景描述示例解释 场景描述 要将Positioned定位到屏幕底部中间的位置&#xff0c;你可以使用MediaQuery来获取屏幕的高度&#xff0c;然后设置Positioned的bottom属性和left或right属性&#xff0c;一般我们left和right都会设置一个值让控制置于合适的位置&#xff0…