商家那里给出的是一个有几千行的excel表,这里使用openpyxl来读取excel。
class read_write:
def __init__(self,token,cookiestr):
self.subway=subwayquery(token,cookiestr)
self.threadpool=threadpool.ThreadPool(32)
self.centeralignment=openpyxl.styles.Alignment(horizontal='center')
self.percentage_format=openpyxl.styles.numbers.FORMAT_PERCENTAGE_00
self.number00_format=openpyxl.styles.numbers.FORMAT_NUMBER_00
self.number_format=openpyxl.styles.numbers.FORMAT_NUMBER
def write_sheet(self,sheet,data,row,base):
cell1=sheet.cell(row=row,column=base+1)
cell1.value=float(data['impressionRate'])/10000
cell1.number_format=self.percentage_format
cell2=sheet.cell(row=row,column=base+2)
cell2.value=int(data['impression'])
cell2.number_format=self.number_format
cell3=sheet.cell(row=row,column=base+3)
cell3.value=int(data['click'])
cell3.number_format=self.number_format
cell4=sheet.cell(row=row,column=base+4)
cell4.value=float(data['ctr'])/10000
cell4.number_format=self.percentage_format
cell5=sheet.cell(row=row,column=base+5)
cell5.value=float(data['cvr'])/10000
cell5.number_format=self.percentage_format
cell6=sheet.cell(row=row,column=base+6)
cell6.value=float(data['avgPrice'])/100
cell6.number_format=self.number00_format
cell7=sheet.cell(row=row,column=base+7)
cell7.value=int(data['competition'])
cell7.number_format=self.number_format
def query_write(self,sheet,row):
keyword=sheet.cell(row=row,column=1).value
try:
parse1=self.subway.query(keyword,'1')
if(parse1!=False):
self.write_sheet(sheet,parse1['result'][0],row,4)
self.write_sheet(sheet,parse1['result'][1],row,11)
except Exception as e:
# print("%s,%d,%s,%s" % (keyword,row,e,parse1['result']))
pass
try:
parse2=self.subway.query(keyword,'2')
if(parse2!=False):
self.write_sheet(sheet,parse2['result'][0],row,18)
self.write_sheet(sheet,parse2['result'][1],row,25)
except Exception as e:
# print("%s,%d,%s,%s" % (keyword,row,e,parse2))
pass
def try_save(self,wb,filename):
try:
print('正在保存文件:'+filename)
wb.save(filename)
except Exception as e:
wb.save(filename+'_copy')
def start(self):
files=os.listdir(os.getcwd()+'/work')
for filename in files:
print('正在读取文件:'+filename)
wb=load_workbook('work//'+filename)
sheets=wb.sheetnames
for sheetname in sheets:
print('正在读取表:'+sheetname)
sheet=wb[sheetname]
sheet.merge_cells('E1:K1')
sheet.merge_cells('L1:R1')
sheet.merge_cells('S1:Y1')
sheet.merge_cells('Z1:AF1')
alignment=openpyxl.styles.Alignment(horizontal='center')
sheet['E1'].value='淘宝站内'
sheet['L1'].value='淘宝站外'
sheet['S1'].value='计算机设备'
sheet['Z1'].value='移动设备'
sheet['E1'].alignment=sheet['Z1'].alignment=sheet['S1'].alignment=sheet['L1'].alignment=self.centeralignment
sheet['E2'].value=sheet['L2'].value=sheet['S2'].value=sheet['Z2']='展现占比'
sheet['F2'].value=sheet['M2'].value=sheet['T2'].value=sheet['AA2']='展现指数'
sheet['G2'].value=sheet['N2'].value=sheet['U2'].value=sheet['AB2']='点击指数'
sheet['H2'].value=sheet['O2'].value=sheet['V2'].value=sheet['AC2']='点击率'
sheet['I2'].value=sheet['P2'].value=sheet['W2'].value=sheet['AD2']='点击转化率'
sheet['J2'].value=sheet['Q2'].value=sheet['X2'].value=sheet['AE2']='市场均价'
sheet['K2'].value=sheet['R2'].value=sheet['Y2'].value=sheet['AF2']='竞争度'
max_row=sheet.max_row
for i in range(0,(max_row+2997)//3000):
start=time.time()
arguments=list()
for row in range(3+i*3000,min(3002+i*3000,max_row)+1):
arguments.append(([sheet,row],()))
requests=threadpool.makeRequests(self.query_write,arguments)
[self.threadpool.putRequest(req) for req in requests]
self.threadpool.wait()
end=time.time()
print('第%d-%d行执行完毕,用时%.1f秒.'%(3+i*3000,min(3002+i*3000,max_row),(end-start)))
self.try_save(wb,filename)
原理就是读取excel表中第一列的关键词,然后开启一个线程池,将抓取任务每3000个一次放到线程池中运行,最后保存结果
Python实现的淘宝直通车数据抓取(1)
Python实现的淘宝直通车数据抓取(2)
Python实现的淘宝直通车数据抓取(3)
Python实现的淘宝直通车数据抓取(4)
分享到:
相关推荐
基于python实现的民宿房源数据抓取以及可视化分析项目源码(高分项目).zip 已获老师指导并通过的高分毕业设计项目,也可作为期末大作业和课程设计,纯手打高分项目,小白实战没难度。 基于python实现的民宿房源...
【Python-淘宝天猫商品数据抓取代码和exe都在里面】 这个资源主要涵盖了使用Python进行网络爬虫技术,特别是针对淘宝和天猫平台的商品数据抓取。Python作为一种强大的编程语言,因其简洁明了的语法和丰富的库支持,...
"Python爬虫技术的网页数据抓取与分析" 在信息化时代,互联网信息量呈现爆发式的增长,如何在诸多复杂的信息中简单快捷的寻找到有效信息,网络爬虫的诞生能够有效的解决此类问题,改善了信息检索的现状。本文通过...
基于python实现的牛客网面经数据抓取源码(课程作业).zip基于python实现的牛客网面经数据抓取源码(课程作业).zip基于python实现的牛客网面经数据抓取源码(课程作业).zip基于python实现的牛客网面经数据抓取源码...
综上所述,文章介绍了基于Python的51-job数据抓取程序的设计与实现过程,强调了Python在数据抓取领域的应用优势,并通过实验验证了程序的效率和实用性。该程序不仅能够帮助用户快速获取职位信息,还为后续的数据分析...
淘宝美食抓取 存储到Mongodb和txt文件中 服务器端:通过web服务器的配置来指定编码参数,为所有text/html类型的文档指定带有正确编码信息的Content-Type头信息。例如Content-Type: text/html;charset=UTF-8 ...
本项目为淘宝天猫商品数据抓取及可视化设计源码,主要使用Python编写,辅以CSS、JavaScript和HTML等技术。项目包含677个文件,涵盖522个pyc文件、58个dll文件、29个py文件、19个pyd文件、10个exe文件、6个json文件、...
课设项目基于python实现的美团酒店评论抓取和情感分析源码+项目说明(jupter notebook运行).zip课设项目基于python实现的美团酒店评论抓取和情感分析源码+项目说明(jupter notebook运行).zip课设项目基于python实现的...
【作品名称】:基于Python实现豆瓣电影TOP250抓取,然后对爬取的数据进行分析 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目...
python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,...
获取淘宝直通车接口加密参数_h的值,跟随直通车后台不定时更新。(下载之后解压缩,python源码和js文件都在里面,运行py文件即可。如果遇到问题可以私聊我解决
在这个"python抓取淘宝天猫网页商品详情Demo"中,我们将探讨如何利用Python进行网页抓取,特别是针对淘宝和天猫的商品详情页面。 首先,我们需要理解网页抓取的基本原理。网页抓取,也称为网络爬虫,是通过模拟...
首先,网页数据抓取是通过Python中的库如BeautifulSoup或Scrapy来实现的。BeautifulSoup库允许我们解析HTML和XML文档,通过选择器定位到特定的数据节点,提取所需信息。例如,在`anadata.py`和`anadata2.py`中可能...
项目概述:本项目采用Python语言开发,旨在实现对携程机票数据的爬取。整个项目由多个模块组成,包括...简单描述:本项目基于Python爬虫技术,针对携程机票数据进行高效抓取与处理,实现了数据整合与利用的前期工作。
Python车牌识别、车牌抓取源程序,运行程序前需先导入cv2和numpy包。
该项目是一款基于Python开发的电子商务数据抓取系统源码,包含380个文件,涵盖128个Python脚本、75个GIF图片、41个Markdown文档、27个JavaScript文件、22个CSV文件、18个JSON文件、18个HTML文件、10个TXT文件、10个...
Python爬虫工程师-App数据抓取思维导图,便捷整理思路,目标、对项目、公司、个人的意义、爬虫工程师技术储备
Python爬虫技术在IT行业中广泛应用于数据挖掘和自动化任务,特别是在网络视频资源的获取上。本项目专注于自动批量抓取m3u8网页视频,这是一个非常实用的技能,特别是对于那些需要收集网络视频数据的人来说。m3u8是一...
由于提供的文件信息中并没有具体的Python数据抓取技术与实战内容,我无法生成具体的技术知识点。但是,我可以根据标题“Python数据抓取技术与实战.pdf”来构建一些关于Python数据抓取的基础知识点和实战技巧。 知识...
在本压缩包中,我们拥有一个使用Python编程语言编写的淘宝爬虫示例,特别针对天猫平台的数据抓取。Python是一种流行的高级编程语言,尤其在数据处理和网络爬虫领域广泛应用。下面将详细介绍这个示例源码涉及的核心...