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('全部采集完毕!!')
python输入三个商品_用python3采集shopify站点商品相关推荐
- python输入三个整数_#python输入一个序列,其中包含表示年,月,日的三个整数,判断这个日期是当年的第几?#...
python ,获取当前时刻,要求格式为:年月日,时分 am或pm >>> import time >>> print time.strftime("%Y ...
- python输入三个数,将这三个数从小到大输出
python输入三个数,将这三个数从小到大输出 1. sort() 2. sorted() 3. 分支结构比大小 4. max() 1. sort() a = [] for i in range(1, ...
- python表示三个数升序_编写程序,输入三个数,然后以升序显示_学小易找答案
[简答题]按照软件开发的顺序,实现下列程序: 计算三角形面积的公式为:s = (side1 + side2 + side3) / 2,area = (s - side1)(s - side2)(s - ...
- python输入三个整数x、y、z、请把这三个数由小到大输出_输入三个整数x、y、z,请把这三个数由小到大输出...
题目:输入三个整数x,y,z,请把这三个数由小到大输出. 程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> ...
- python输入三个整数、输出最大的数_题目:使用Python编程,输入三个整数x,y,z,请把这三个数由小到大输出...
题目:输入三个整数x,y,z,请把这三个数由小到大输出 思路:这题主要使用list.sort()的方法排列,首先要保证用户输入的数字一定是整数,如果不是整数需要提示用户输入错误,重新输入.(使用try ...
- 用python输入三个整数判断能否构成三角形_用户输入三个数字,判断可以构成什么三角形?...
1.练习1:使用python实现两个数字的交换 A= input("请输入一个数字:") B= input("请在输入一个数字:") A,B=B,A print ...
- 用python输入三个整数判断能否构成三角形_用户输入三个数字,判断能够构成什么三角形?...
一.练习1:使用python实现两个数字的交换 A= input("请输入一个数字:") B= input("请在输入一个数字:") A,B=B,A print ...
- 用python输入三个整数判断能否构成三角形_输入3个整数,判断是否能构成三角形,c语言编程...
展开全部 可以根据数学公式进行判断. 一.数学定理. 要构成三角636f70793231313335323631343130323136353331333363373735形,必须要任意两边和大于第三 ...
- 用python编写表达式求值_用Python3实现表达式求值
Problem Description yizhen has no girlfriend due to his stupid brain that he even can't solve a simp ...
最新文章
- dubbo启动顺序问题
- 在Microsoft Word中,Node是如何替代宏的
- java transient关键字
- 【Python】干货分享 | Pandas处理时间序列的数据
- 【机器学习基础】一文归纳AI调参炼丹之法
- mysql 备份工具xtrabackup全备与还原图解
- 如何使用单例EJB,Ehcache和MBean构建和清除参考数据缓存
- php 构造骚扰短信发送机(仅供学习与参考,请勿用于非法用途)
- hdu 4970 killing monster 代代相传刷qq 不用线段树啦~
- linux中apache服务器的搭建与配置
- 大学编程python_大学生想学一门编程语言傍身,Python可以吗?
- python打开文本文档_带声明的Python –带打开的文件
- web服务器mysql日志分析
- [python] 为 pip 更换国内源
- java自动填充_java-自动使用随机数据填充原始属性?
- java 正则表达式匹配_Java 正则表达式匹配
- VueX浏览器刷新如何保存数据
- 利用python进行数据分析(第二版)_第六章
- 换发型特效怎么制作?这些方法值得收藏
- 第三部分 :简单句的补充(并列句)
热门文章
- 这50个思维方法,深刻改变了我的人生
- 10岁才上小学的他,如今是高校男神教授
- 西欧八国调查:25%受访者宁要AI政府也不要民选政治家
- 坚持早起21天,每月多赚1000+ (文末有惊喜)
- 深度学习(1)--引言
- (pytorch-深度学习)双向循环神经网络
- linux ps 命令使用
- HtmlUnit优秀文章
- springmvc整合mybatis之准备阶段与文件配置
- 使用注解配置spring如@Compnent、@Service、@Consroller、@scope和@value的使用