孔夫子二手书采集

文章目录

  • 项目演示
    • 软件采集单本数据
    • 网页搜索数据对比
  • 使用场景
  • 概述
  • 部分核心逻辑
    • Vb工程图
    • 数据导入与读取
    • 下拉框选择参数
    • 设置线程
  • 使用方法
    • 下载软件
    • 授权
    • 导入文件
    • 预览处理后的数据
  • 项目结构
  • 附件说明

项目演示

在这里插入图片描述

操作视频详见演示视频,以下为图文演示

软件采集单本数据

我们导入ISBN信息后,设置品相和价格筛选,待会方便进行数据比对。
在这里插入图片描述

采集了4条数据进行比对,看看是否与官方一致

在这里插入图片描述

Description

网页搜索数据对比

可见,脚本采集到的数据和官方一致,价格对应、店铺名、书籍名、出售数量全部对应

Description

Description


使用场景

软件主要是用于旧书信息采集,对接二手平台网站以实时获取数据。这个软件可能主要服务于两类人群,但是不局限于这些:

  • 二手书卖家:这些卖家可能拥有大量旧书,并希望通过孔夫子二手书采集软件来发布和展示他们的书籍信息,以便吸引潜在买家。这个软件为他们提供了一个便捷的平台,使他们能够轻松管理和展示自己的二手书库存,从而更好地销售和回收资金。

  • 二手书回收商:这些回收商可能从个人或企业回收旧书,然后再将这些书籍销售给需要的买家或进行再利用。通过使用孔夫子二手书采集软件,他们可以快速获取实时数据,了解市场动态和需求,以便更好地评估和采购二手书籍。

  • 二手书市场创业者:如果你是在校大学生,想从事二手书籍回收♻️,但是不知道市场价格,可以通过本工具筛选该系列图书在孔夫子旧书网平台的最低价格,可以一键批量操作,省心省时省力

孔夫子二手书采集软件提供了一个高效、便捷的解决方案,帮助二手书卖家更好地管理和销售二手书籍。通过实时数据采集和对接二手平台网站,轻松获取每一本书籍的出版信息,全网低价以及销售数量,及时跟进当前市场趋势,这个软件有助于提高他们的业务效率和客户的购买意愿,促进旧书市场的流通和发展。


概述

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

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

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

原数据预览图
Description

处理后的数据预览图
Description

部分核心逻辑

Vb工程图

新建绘制一个VB视图
在这里插入图片描述

导出UI代码
Description

数据导入与读取

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
# # 等待所有线程结束

使用方法

下载软件

下载压缩包后,解压到桌面,双击软件打开
Description

Description

授权

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

导入文件

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

在这里插入图片描述

等待数据处理完成

在这里插入图片描述

预览处理后的数据

中间可以随时点击停止
Description

打开文件夹

Description

Description

打开查看
Description


项目结构

['    |-- api-ms-win-core-synch-l1-2-0.dll','    |-- libcrypto-1_1.dll','    |-- libopenblas.XWYDX2IKJW2NMTWSFYNGFUWKQU3LYTCZ.gfortran-win_amd64.dll','    |-- libssl-1_1.dll','    |-- _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','    |   |-- top_level.txt','    |   |-- WHEEL','    |-- file','    |   |-- output.xlsx','    |-- lxml','    |   |-- builder.cp37-win_amd64.pyd','    |   |-- etree.cp37-win_amd64.pyd','    |   |-- html','    |   |   |-- clean.cp37-win_amd64.pyd','    |   |   |-- diff.cp37-win_amd64.pyd','    |   |-- isoschematron','    |       |-- resources',
]

附件说明

下载地址

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

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

相关文章

Hypothesis, 一个很少人会用的Python测试库

在软件开发中,测试是保证代码质量和功能正确性的重要环节。为了提高测试的覆盖率和效率,开发者们创造了许多测试框架和工具。其中 Hypothesis 是一个强大且受欢迎的 Python 测试库,它利用属性基测试的思想,可以自动生成测试数据并…

akka-Cluster在k8s部署

akka-Cluster:k8s部署 背景:在 Spring Boot 中整合akka集群。现在需要将其部署在k8s中。 以下仅是一个节点的配置过程。若存在多个节点,则需要配置多次。 假设当前项目为3个akka节点。则在kubernetes中结构为: 代码层面&#…

【python】Ubuntu下安装spyder及matplotlib中文显示

一、查看Ubuntu版本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy尝试用cat /etc/debian_version命令,竟然可以显示出来Debian的版本。 $ cat /etc/debian_version …

fastadmin 跳转到输入的指定页面

fastadmin 跳转到输入的指定页面 实现效果&#xff1a; table.on(load-success.bs.table, function (e, tabledata) {var html<li class"jumpto"><input type"text" class"form-control"><button class"btn btn-default&q…

《LIO-SAM阅读笔记》1.IMU预积分模块

前言&#xff1a; LIO-SAM是一个多传感器融合的紧耦合SLAM框架&#xff0c;融合的传感器类型有雷达、IMU和GPS&#xff0c;其中雷达和IMU在LIO-SAM框架中必须使用的。LIO-SAM的优化策略采用了GTSAM库&#xff0c;GTSAM库采用了因子图的优化方法&#xff0c;其提供了一些列C的外…

SpringSecurity安全框架 ——认证与授权

目录 一、简介 1.1 什么是Spring Security 1.2 工作原理 1.3 为什么选择Spring Security 1.4 HttpSecurity 介绍&#x1f31f; 二、用户认证 2.1 导入依赖与配置 2.2 用户对象UserDetails 2.3 业务对象UserDetailsService 2.4 SecurityConfig配置 2.4.1 BCryptPasswo…

第11章 GUI Page436 使用缓冲DC, wxBufferedPaintDC

所谓“缓冲DC”&#xff0c;是指将所有图元都先划到一个人眼看不到的“设备上下文”之上&#xff0c;最后再一次性复制到真正的屏幕DC之上&#xff0c;这样我们就看不到中间画的过程了&#xff0c;也就不会感到闪烁了。 注意&#xff0c;这时不能解除ScrolledWindow1的背景擦除…

Golang实现JAVA虚拟机-运行时数据区

一、运行时数据区概述 JVM学习&#xff1a; JVM-运行时数据区 运行时数据区可以分为两类&#xff1a;一类是多线程共享的&#xff0c;另一类则是线程私有的。 多线程共享的运行时数据区需要在Java虚拟机启动时创建好&#xff0c;在Java虚拟机退出时销毁。对象实例存储在堆区类信…

探索 Vue3 (四) keep-alive缓存组件

keep-alive 的作用 官网介绍&#xff1a;KeepAlive | Vue.js keep-alive为抽象组件&#xff0c;主要用于缓存内部组件数据状态。可以将组件缓存起来并在需要时重新使用&#xff0c;而不是每次重新创建。这可以提高应用的性能和用户体验&#xff0c;特别是在需要频繁切换组件时…

【Linux】僵尸与孤儿 进程等待

目录 一&#xff0c;僵尸进程 1&#xff0c;僵尸进程 2&#xff0c;僵尸进程的危害 二&#xff0c;孤儿进程 1&#xff0c;孤儿进程 三&#xff0c;进程等待 1&#xff0c;进程等待的必要性 2&#xff0c;wait 方法 3&#xff0c;waitpid 方法 4&#xff0c;回收小结…

vue场景 无分页列表条件过滤,子组件多选来自父组件的列表

日常开发中&#xff0c;经常会遇到下面场景&#xff1a; 页面加载一个无分页列表&#xff0c;同时工具栏设置多个条件可对列表过滤的场景(典型的就是关键字模糊查询)父组件传给子组件列表&#xff0c;子组件中需要多选列表多选&#xff0c;选择结果返回父组件 1 无分页列表过…

Tg5032smn:高稳定性105℃高温

TG5032SMN是一款频率范围10MHz ~ 54MHz,具有高稳定的TCXO晶振&#xff0c;可与CMOS或限幅正弦输出。外部尺寸5.0 3.2 1.45mm&#xff0c;超小型,质地轻。该系列晶振的额定工作范围-40℃~&#xfe62;105C内可高稳定性工作&#xff0c;使得信号频率的误差很小。TG5032SMN与其他…