【实例】Python爬取淘宝图片

淘宝图片爬虫实战
本文介绍了一种使用Python爬取淘宝商品图片的方法。通过构造URL并利用正则表达式匹配图片链接,实现了对指定关键词搜索结果中图片的批量下载。

一、分析

》》 第一页时
这里写图片描述
》》第二页时s=48,第三页时s=96(每页为48的倍数)
这里写图片描述
》》当q=外套时(q为关键字)
这里写图片描述
》》用于每页图片的正则表达目标
这里写图片描述

二、代码

导入请求、报错模块&正则表达式类库
from urllib import request,error
import re
定义搜索词并将搜索词转码,防止报错
key_name=request.quote("笔记本电脑")
定义函数,将爬到的每一页的商品url写入到文件
def savefile(data):
	path="C:\\Users\\Administrator\\Desktop\\taobao_url.txt"
	file=open(path,"a")
	file.write(data+"\n")
	file.close()
外层for循环控制爬取的页数 将每页的url写入到本地
for p in range(0,6):
拿到每页url
	url="https://s.taobao.com/search?q=" + key_name + "&s=" + str(p*48)
拿到每页源码
	data1=request.urlopen(url).read().decode("utf-8")
调用函数savefile,将每页url存入到指定path
	savefile(url)
	#定义匹配规则
		pat='pic_url":"//(.*?)"'
	#匹配到的所有图片url
	img_url=re.compile(pat).findall(data1)
	print(img_url)
	#内层for循环将所有图片写到本地
	for a_i in range(0,len(img_url)):
		this_img=img_url[a_i]
		this_img_url="http://"+this_img
		#每张图片的url
			print(this_img_url)
		#将每张图片写到本地
		#定义存取本地图片路径【retrieve()不会再本地建立文件夹因此需要手建】
		img_path="C:\\Users\\Administrator\\Desktop\\taobao_img\\" + str(p)+ 
str(a_i)+".jpg"
		request.urlretrieve(this_img_url,img_path)

三、效果

这里写图片描述

### 使用Python爬虫抓取淘宝商品列表中的图片 为了实现这一目标,可以采用Selenium WebDriver来处理动态加载的内容并模拟浏览器行为。以下是具体方法: #### 导入必要的库 首先需要安装并引入一些基本的库用于网络请求、HTML解析以及图像下载。 ```python from selenium import webdriver import time import os from urllib.request import urlretrieve ``` #### 设置Selenium WebDriver 配置ChromeDriver或其他支持的WebDriver路径,并启动浏览器实例。 ```python driver_path = 'path/to/chromedriver' # 替换为实际chromedriver位置 browser = webdriver.Chrome(executable_path=driver_path) url = "https://www.taobao.com" browser.get(url) time.sleep(3) # 等待页面完全加载 ``` #### 登录操作(如果必要) 部分网站可能要求登录才能查看某些资源,在这种情况下需先完成自动化的登录流程[^2]。 #### 定位商品图片元素 通过XPath或CSS选择器定位到包含商品缩略图链接的标签节点集合。 ```python image_elements = browser.find_elements_by_css_selector('.item .pic-box img') images_urls = [] for element in image_elements[:10]: # 只选取前十个作为例子 src = element.get_attribute('src') or element.get_attribute('data-src') images_urls.append(src.replace('_60x60q90.jpg', '')) # 去除尺寸限定符以获取原始大小图片URL print(images_urls) ``` #### 下载图片文件至本地目录 创建保存图片的目标文件夹,并依次访问每个图片地址将其存储下来。 ```python save_dir = './taobao_images/' if not os.path.exists(save_dir): os.makedirs(save_dir) for index, link in enumerate(images_urls): try: filename = f"{index}.jpg" full_path = os.path.join(save_dir, filename) urlretrieve(link, full_path) print(f'Downloaded {filename}') except Exception as e: print(e) ``` 关闭浏览器会话结束整个过程。 ```python browser.quit() ``` 上述代码片段展示了如何利用Python结合Selenium WebDriver从淘宝的商品列表页中提取商品图片并保存到本地磁盘上。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

風月长情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值