孔夫子二手书采集

文章目录

  • 项目演示
    • 软件采集单本数据
    • 网页搜索数据对比
  • 使用场景
  • 概述
  • 部分核心逻辑
    • 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.mzph.cn/news/573751.shtml

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

相关文章

为什么用redis做缓存而不是mybatis自带的缓存_如何用Java设计一个本地缓存,涨姿势了...

最近在看Mybatis的源码,刚好看到缓存这一块,Mybatis提供了一级缓存和二级缓存;一级缓存相对来说比较简单,功能比较齐全的是二级缓存,基本上满足了一个缓存该有的功能。当然如果拿来和专门的缓存框架如ehcache来对比可能…

process 类 java_编写可执行jar——java的Process类的使用(二)

你知道怎么在控制台使用ping吗?那你知道怎么在java中使用ping吗?1.批处理文件批处理文件大家一定不陌生。接触最多的应该就是tomcat中的start.bat或者start.sh了。bat是在windows环境下运行的批处理文件,sh则是linux的shell脚本。2.adb指令安…

2782: [HNOI2006]最短母串

2782: [HNOI2006]最短母串 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 3 Solved: 2[Submit][Status][Web Board]Description 给定n个字符串(S1,S2,„,Sn),要求找到一个最短的字符串T,使得这n个字符串(S1,S2,„,…

c java 内部类_java程序中能否在内部类当中再定义一个内部类?

展开全部我被你的想62616964757a686964616fe78988e69d8331333363386664法震撼了,哈哈.亏你想的出来...这么弄代码不好理解,Java看起来醒目,也是Java中的一个规范!可以吗?必须可以..看代码演示...声明下,我也第一次,多次嵌套,看你想法后去试验下是可行的我用的两种办法!不多说看…

数据库分区分表以及读写分离

谈谈怎么实现Oracle数据库分区表 Oracle数据库分区是作为Oracle数据库性能优化的一种重要的手段和方法,做手头的项目以前,只聆听过分区的大名,感觉特神秘,看见某某高手在讨论会上夸夸其谈时,真是骂自己学艺不精&#x…

JSP Workshop

http://www.cnblogs.com/ITtangtang/p/4126395.html 发现http://www.tutorialspoint.com/里的资料很全也很不错啊! 资料:http://www.tutorialspoint.com/jsp/jsp_tutorial.pdf 另外,http://www.runoob.com/jsp/jsp-tutorial.html 中关于JSP…

h5页面不可 移动_H5营销|为什么H5适合于微信营销

随着互联网技术的不断发展,更新在移动互联网时代,网络营销也开始越来越新颖化,而微信H5就是其中的佼佼者。它的出现满足了用户视觉上的审美要求,并且可以使营销方式变得更加的美观整洁,那么这里就有一个问题。为什么微…

亚太地区数学建模优秀论文_数学建模美赛强势来袭!

01美赛,即美国大学生数学建模竞赛(MCM/ICM)又要来啦!赛题内容涉及经济、管理、环境、资源、生态、医学、安全、未来科技等众多领域。竞赛要求三人(本科生)为一组,在四天时间内,就指定的问题完成从建立模型、求解、验证到论文撰写的…

《软件调试》读书笔记:第13章 硬错误和蓝屏

会话管理器进程SMSS.exe是系统启动后的第一个用户态进程,负责启动和监护windows子系统进程:CSRSS.exe和登陆管理进程:WinLogonSMSS.exe从注册表中查询子系统exe文件的位置,并且启动它 CSRSS是windows子系统进程,自NT4以…

信息安全技术网络安全等级保护定级指南_行业标准 |报业网络安全等级保护定级参考指南V2.0发布,明确保护对象、定级要求...

近期,中国新闻技术工作者联合会正式发布《报业网络安全等级保护定级参考指南V2.0》。该指南由中国新闻技术工作者联合会组织网络安全领域的专家、报业技术专家以及业务专家经过多次调研、学习、探讨后,在原《报业网络安全等级保护定级参考指南V1.0》的基…

数学作图工具_科研论文作图系列-从PPT到AI (一)

导语:之前的推送中,小编给大家介绍过几款科研作图软件,包括统计分析软件Origin和Prism,图像处理软件ImageJ等等。从本期开始,小编将和大家一起继续学习科研论文作图。重点介绍图像的处理和排版,用到的工具主…

优启通怎么重装系统win10_重装系统失败?小编教你安全给神舟战神GX9 Pro重装win10系统方法...

神舟战神GX9 Pro 上市于2016年1月,虽然现在已经停产,但是还是有不少用户依旧十分喜爱这款笔记本。这款笔记本的性能完全对得起它的售价,很多用户都反馈其比外星人电脑要好。对于爱玩游戏的用户而言,对它17.3英寸的显示屏简直欲罢不…

20135202闫佳歆--week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程--实验及总结...

week 8 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程 1.环境搭建: rm menu -rf git clone https://github.com/megnning/menu.git cd menu ls make rootfs qemu -kernel ../linux-3.18.6/arch/x86/boot/bzImage -initrd ../rootfs.img -s -S …

java jni技术_JNI技术简介

JNI(Java Native Interface)提供一种Java字节码调用C/C的解决方案,JNI描述的是一种技术。NDK(Native Development Kit)Android NDK 是一组允许您将 C 或 C(“原生代码”)嵌入到 Android 应用中的工具,NDK描述的是工具集。 能够在 Android 应用中使用原生…

java web redis_java web redis使用(二)

上篇中已经安装好redis,然后下面就说怎么在java web中用客户端来使用regis使用jedis java客户端一:一个简单的示例代码:public static void main(String[] args) {Jedis jedis new Jedis( "147.151.240.234" , 6379 );jedis.set("foo&…

mysql 主从_搭建mysql主从并编写监控主从状态脚本

要求:两台centos7虚拟机分为主和从安装mysqlyum -y install mysql mysql-server关闭防火墙service iptables stopsetenforce 0上面的主从都做。修改主的配置文件vi /etc/my.cnf#添加server-id1log-binmysqlbinrelay-logrelays之后保存退出重启mysql服务service …

Java核心技术点之动态代理

本篇博文会从代理的概念出发,介绍Java中动态代理技术的使用,并进一步探索它的实现原理。由于个人水平有限,叙述中难免出现不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 一、概述 1. 什么…

shell入门之expr的使用

在expr中加减乘除的使用,脚本例如以下: #!/bin/sh #a test about expr v1expr 5 6 echo "$v1" echo expr 3 5 echo expr 6 / 2 echo expr 9 \* 5 echo expr 9 - 6 执行效果 转载于:https://www.cnblogs.com/bhlsheji/p/5401458.html

java中子线程与主线程通信_Android笔记(三十二) Android中线程之间的通信(四)主线程给子线程发送消息...

之前的例子都是我们在子线程(WorkerThread)当中处理并发送消息,然后在主线程(UI线程)中获取消息并修改UI,那么可以不可以在由主线程发送消息,子线程接收呢?我们按照之前的思路写一下代码:packagecn.lixyz.handlertest;…

java开源笔记软件下载_开发常用软件笔记 - ZhaoQian's Blog - OSCHINA - 中文开源技术交流社区...

notepad使用快捷键CtrlH打开“替换对话框”,在每行的开头添加内容。 勾选左下角的“正则表达式”选项 在“查找目标”里输入上尖号“^”,上尖号代表每行的开头 在“替换为”里输入“private String”。然后点"全部替换"按钮,这样每…