python输入三个商品_用python3采集shopify站点商品

import requests,bs4,csv,os,re,time

'''采集商品url'''

def shopifylist(url):

while True:

try:

res=requests.get(url,timeout=30)

res.encoding = res.apparent_encoding

print('请求',url,'状态',res.status_code)

res.raise_for_status()#如果返回状态不是200,则抛出异常

break

except:

timeout=3

print('链接失败,等待',timeout,'秒重试')

time.sleep(timeout)

print('')

print('重新链接中')

print('链接顺畅,开始获取商品链接')

noStarchSoup=bs4.BeautifulSoup(res.text,'html.parser')#html.parser 指定解析器

url=noStarchSoup.select('.product-card.sc-pb-element')

for i in range(len(url)):

imgurl='https://tribalhollywood.com'+url[i].get('href')

print('获取产品url')

shopify(imgurl,site)#调用采集内容方法

print('\n')

'''采集商品url结束'''

'''采集商品内容开始'''

def shopify(url,site):

print('开始请求产品页面',url)

while True:

try:

res=requests.get(url,timeout=30)

res.encoding = res.apparent_encoding

print('成功请求商品页面:',res.status_code)

res.raise_for_status()#如果下载发生问题,就抛出异常

break

except:

print('请求商品页面',url,'失败,重新链接')

noStarchSoup=bs4.BeautifulSoup(res.text,'html.parser')

#匹配class属性为‘wc-block-grid__product-title’的内容

name=noStarchSoup.select('.product-single__title')

name=name[0].getText()

price=noStarchSoup.select('.product-single__price')

price=price[0].getText()

price=re.sub(' ','',price)

price=re.sub('\n','',price)

#特别注意class="rte product-single__description"只需要product-single__description

des=noStarchSoup.select('.product-single__description')

des=des[0].getText()

des=re.sub('Hollywood','customadd.com',des)#替换版权信息

img=noStarchSoup.select('#ProductThumbs-product-template img')

if img==[]:

img=noStarchSoup.select('.sc-pb-element1')

l=img[0].get('src')

l='http:'+l

l=re.sub('_960x','',l)

else:

l=[]

for i in range(len(img)):

imgurl=img[i].get('src')

imgurl=re.sub('_160x160','',imgurl)

l.append('https:'+imgurl)

l=','.join(l)

fileHeader=['标题','产品url','价格','描述','图片']

file=[name,url,price,des,l]

#文件存储的地方,文件夹需要事先创建,并指定文件的格式为utf-8

while True:

try:

csvFile=open(site,'a',encoding='utf-8')

break

except:

print('')

print(site+'文件写入失败,重试中。。。。。')

time.sleep(5)

size=os.path.getsize(site)#判断文件大小,如果文件大于0则表示文件有内

writer=csv.writer(csvFile)

if size==0:

writer.writerow(fileHeader)

writer.writerow(file)

csvFile.close()

else:

writer.writerow(file)

csvFile.close()

print('采集成功!')

'''采集内容结束'''

#urlpro=str(input('输入要采集的商品列表'))

urlpro='https://www.tribalhollywood.com/collections/mens-necklaces'

site='D:\Backup\桌面\python3\mens-necklaces1.csv'

nt=['我不是空的']

n=1

while nt!=[]:

url=urlpro+'?page='+str(n)

prourl=shopifylist(url)#调用采集列表方法

print('成功采集',n,'页')

n=n+1

res=requests.get(url)

res.raise_for_status()

noStarchSoup=bs4.BeautifulSoup(res.text,'html.parser')

nt=noStarchSoup.select('.next')

print('全部采集完毕!!')

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

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

相关文章

好代码实践:基于Redis的轻量级分布式均衡消费队列

简介: 好代码,给人第一个印象的感觉,就像一篇好文章一样,读起来朗朗上口。不同的文章有不同的风格体裁,不同的代码也有不同的编程风格要求。Python有严格的缩进,像诗歌一样工整对仗;C语言面向过…

浅析低功耗广域网及在智慧城市中的应用

作者 | 沈建华、冷咏雪根据知名物联网分析机构IoT Analytics预测,到2025年,物联网连接数将达到非物联网连接数的3倍。低功耗广域网(LPWAN)作为物联网连接的核心基础设施,其业务特点是发送数据极小,并且为了维持电池供电设备的长时…

python启动http服务_Python命令开启http.server服务器

如果想把命令E:\zpic作为提供下载的目录,那么在cmd里cd到该目录下,并执行命令:python -m SimpleHTTPServer默认的端口号是8000, 服务器根目录就是运行python命令的工作目录如果提示错误:No module named SimpleHTTPSer…

rocketmq怎么保证数据不会重复_RocketMQ保证信息有序性和防止重复

分布式开放消息系统(RocketMQ)的原理与实践分布式消息系统做为实现分布式系统可扩展、可伸缩性的关键组件,须要具备高吞吐量、高可用等特色。而谈到消息系统的设计,就回避不了两个问题:java消息的顺序问题消息的重复问题RocketMQ做为阿里开源…

云效Codeup代码评审中的代码协同

简介: 云效 Codeup 汇集了阿里巴巴最新的代码托管、代码协同技术,希望能够造福更多中国和世界的开发者。 大神说:“Show me the code”,于是就有了代码评审。 “Talk is cheap. Show me the code.” ——Linus Torvalds, founder …

代码安全无忧—云效Codeup代码加密技术发展之路

简介: 从代码服务及代码安全角度出发,看看云效代码加密技术如何解决这一问题 代码数据存在云端,如何保障它的安全? 部分企业管理者对于云端代码托管存在一丝担心:我的代码存在云端服务器,会不会被泄露&…

基于python的文件加密传输_基于python实现文件加密功能

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

杀死 Oculus ,Facebook 改名 Meta ,是押注元宇宙还是“金蝉脱壳”?

整理 | 祝涛出品 | CSDN(ID:CSDNnews)美东时间10月28日周四,在名为Facebook Connect的年度大会上,Facebook宣布,Facebook将公司名称更改为“Meta”,这个新名字反映了该公司在社交媒体之外的雄心…

java sdp_[java,SDP] java 7 SDP 技术/Socket Direct Protocol 2

With Java 7 and Sockets Direct Protocol , Java Now does RDMA ( Remote Direct Memory Access)有了 SDP 技术支持之后的 Java 7 已经开始逐步实现 RDMA 技术 (远程内存直接访问)RDMA is Remote Dynamic Memory Accesss -- which is a way of moving application buffers bet…

百信银行基于 Apache Hudi 实时数据湖演进方案

简介: 本文介绍了百信银行实时计算平台的建设情况,实时数据湖构建在 Hudi 上的方案和实践方法,以及实时计算平台集成 Hudi 和使用 Hudi 的方式。 本文介绍了百信银行实时计算平台的建设情况,实时数据湖构建在 Hudi 上的方案和实践…

如何做一场高质量的分享

简介: 每个人在分享前都应该先问自己这么一个问题,我为什么要分享?我觉得分享就一个最纯粹的原因,就是“我有一些知识,是别人不知道的,但对他人会有所帮助,所以我想分享给大家”。 作者 | 阿相 …

python beautifulsoup4_Python之Beautiful Soup 4使用实例

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。Beautiful Soup 4 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/一、安装Beautiful Soup运…

RTE2021,实时互动技术的进化与蝶变

10 月 22—23 日,由声网 Agora 主办的 RTE2021 实时互联网大会在北京圆满落幕。大会以“万象频道”为主题,带来了 20 余场实时互联网全生态线下论坛及活动、近百场的精彩演讲分享,覆盖技术开发、行业观察、创业投资、趋势洞察等多维度话题。同…

Java编程技巧之单元测试用例编写流程

简介: 立足于“如何来编写单元测试用例”,让大家“有章可循”,快速编写出单元测试用例。 作者 | 常意 来源 | 阿里技术公众号 温馨提示:本文较长,同学们可收藏后再看 :)前言 清代杰出思想家章学诚有一句名言&#xff…

KubeVela + KEDA:为应用带来“与生俱来”的弹性伸缩能力

简介: 在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)在 KEDA 上完全标准化。 联合作者 | Yan Xun,阿里云 EDAS 团队…

mysql行转列函数_一个小知识点-Hive行转列实现Pivot

前言传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。传统数据库方式这种方式是借鉴在Oracle或者SQLserver在支持Pivot函数之前实现行转列的方…

java类的理解_Java类该怎么理解?

感觉你对java的各种数据类型可能理解不够吧。整体了解一下各个数据类型,你的问题就清楚了:java的基础数据类型有: byte、short、int、long、float、double、char。数组和类其实都可以“看做”是复杂数据类型,它们由基础数据类型以…

安全之心:一文读懂可信计算

简介: 信 or 不信,这是个问题 可信计算 TC (Trusted Computing) 业界新宠,越来越被高频提到 本质是创造可信执行环境的芯片级安全防护方案 然而,江湖流传 TA 的传说 却鲜少有人见过真身 阿里云作为亚太区最…

国内顶级AI赛事再启程,第三届“中国人工智能大赛”聚焦算法治理、深度伪造与网络安全

本届大赛赛题分为算法治理、深度伪造和网络安全三大方向的七大赛题,分别是:过滤算法鲁棒性、深度伪造视频检测、深度伪造视频生成方法识别、基于人工智能的音视频合成比赛、说话人无关的音频深度伪造检测识别、说话人相关的音频深度伪造检测识别、Webshe…

看阿里云如何用云上技术创新,帮助哈啰单车实现智能数据收治

简介: 客户通过把日志数据迁移到SLS,替代原有的kafka、ES、ClickHouse,累积节省成本达到30%,同时满足了稳定性、扩展性需求,以及对日志查询分析的需求。 更多存储标杆案例 欢迎点击下方链接查看 阿里云存储标杆案例样…