操作视频详见演示视频,以下为图文演示
我们导入ISBN信息后,设置品相和价格筛选,待会方便进行数据比对。
采集了4条数据进行比对,看看是否与官方一致
可见,脚本采集到的数据和官方一致,价格对应、店铺名、书籍名、出售数量全部对应
软件主要是用于旧书信息采集,对接二手平台网站以实时获取数据。这个软件可能主要服务于两类人群,但是不局限于这些:
二手书卖家:这些卖家可能拥有大量旧书,并希望通过孔夫子二手书采集软件来发布和展示他们的书籍信息,以便吸引潜在买家。这个软件为他们提供了一个便捷的平台,使他们能够轻松管理和展示自己的二手书库存,从而更好地销售和回收资金。
二手书回收商:这些回收商可能从个人或企业回收旧书,然后再将这些书籍销售给需要的买家或进行再利用。通过使用孔夫子二手书采集软件,他们可以快速获取实时数据,了解市场动态和需求,以便更好地评估和采购二手书籍。
二手书市场创业者:如果你是在校大学生,想从事二手书籍回收??,但是不知道市场价格,可以通过本工具筛选该系列图书在孔夫子旧书网平台的最低价格,可以一键批量操作,省心省时省力
孔夫子二手书采集软件提供了一个高效、便捷的解决方案,帮助二手书卖家更好地管理和销售二手书籍。通过实时数据采集和对接二手平台网站,轻松获取每一本书籍的出版信息,全网低价以及销售数量,及时跟进当前市场趋势,这个软件有助于提高他们的业务效率和客户的购买意愿,促进旧书市场的流通和发展。
毕业前做的小玩意,今天发现居然还能继续使用,孔夫子二手书采集软件可以将您本地的ISBN全部批量查询书籍信息,并切割保存到本地文件。可查询出版社、出版时间、在售/已售数量、可查询前五本的书籍信息
支持多线程采集
支持质量筛选、价格排序
原数据预览图
处理后的数据预览图
新建绘制一个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_row
self.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
,完成授权验证
找到演示文件夹,里面有预置数据,你可以根据格式替换成自己的
等待数据处理完成
中间可以随时点击停止
打开文件夹
打开查看
[
' |-- 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',
]