• python抓取制定产品图片及简介代码实现


    python抓取制定产品图片及简介代码实现

    # coding:utf-8     设置编码格式
    import requests   #引入requests
    from bs4 import BeautifulSoup
    import re   #引入正则
    import lxml
    import os  
    #图片下载函数
    def download_image(url, image_name=None):  
        response = requests.get(url, stream=True)  
        # 检查请求是否成功  
        if response.status_code == 200:  
            # 如果未指定图片名称,则生成一个随机名称  
            if image_name is None:  
                import uuid  
                image_name = str(uuid.uuid4()) + '.jpg'  
      
            # 打开一个文件以保存图片  
            with open(image_name, 'wb') as f:  
                f.write(response.content)  
      
            print(f"图片已保存为:{image_name}")  
        else:  
            print(f"请求失败,HTTP状态码为:{response.status_code}") 
    		
    
    #抓取产品链接  https://www.aimitoy.com/products/roating-king-white
    #循环执行,执行完一次后,重新开始
    while True:
    	url = input("请输入url:")
    	#print('请输入url')
    	html=requests.get(url)
    	html.encoding = "utf-8"  #修改文件编码格式  解决乱码问题
    	content=html.text        #保存请求到的网页源码
    	soup = BeautifulSoup(content,'lxml')   #将网页源码构造成BeautifulSoup对象,方便操作
    	#print(soup)
    	#a_list=soup.find_all('a',class_="full-unstyled-link") #获取网页中的所有a标签对象
    	#a_list=soup.select('.card__heading .h5> .full-unstyled-link') #获取网页中的所有a标签对象
    	a_list=soup.select('ul[id="Slider-Thumbnails-template--14450556207192__main"] li img')
    	#title=soup.find('h1').contents[0]  #获取h1标题里的文本内容
    	title=soup.find_all('h1')
    	mulu=title[0].string#获取h1标题里的文本内容
    	os.makedirs(mulu,exist_ok=True) #创建目录
    
    	#获取产品标题
    	# productTitle=soup.select('span[id="productTitle"]')[0].string
    	# #print(productTitle)
    	# with open(mulu+'/content.txt', "a") as f:
    	# 	f.write('==========pro title=========='+'\n')
    	# 	f.write(productTitle)
    	print(mulu+'产品文档建立完成')	
    	#获取简介
    	#productcontent=soup.select('div[class="product__description rte quick-add-hidden"]').get_text()
    	productcontent=soup.find('div', attrs={'class': 'product__description rte quick-add-hidden'}).get_text()
    	#print(productcontent)
    	with open(mulu+'/content.txt', "a",encoding='utf-8') as f:
    		f.write('\n'+'==========pro detail======='+'\n')
    		f.write(productcontent)
    	#下载简介图片
    	con_pic=soup.select('div[class="product__description rte quick-add-hidden"] img')
    	num=1
    	for p in con_pic:
    		#print(p.get('src'))
    		savename1=mulu+'/con_pic'+str(num)+'.jpg'
    		download_image(p.get('src'),savename1)
    		#print(savename)
    		num += 1
    
    	#下载图片
    	#print(a_list[0].get('src'))
    	#print(len(a_list))
    	#保存产品图片
    	id = 1
    	for img in a_list:
    		imgurl='https:'+img.get('src').split('?')[0]
    		name='/pic'+str(id)+'.jpg'
    		savename=mulu+name
    		download_image(imgurl,savename)
    		id += 1 
    	print('采集完成')
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
  • 相关阅读:
    OJ练习第169题——课程表 IV
    广东启动“粤企质量提升工作会议” 着力提升产品和服务质量
    Spring学习:二、Bean的管理
    Git入门
    隐私计算综述
    玩转Vue3之Composables
    彻底清除Mac缓存数据的方法,这样清理Mac缓存数据太干净了
    Apache Ranger 的架构是怎样的?
    【Java并发编程一】并发与并行
    如何为linux kernel贡献代码
  • 原文地址:https://blog.csdn.net/wkj001/article/details/133780491