• 如何爬取电商平台的商品图片

目标:到网站 https://www.jd.com,使用:电动剃须刀 为关键词,准备采集搜索出来的商品主图并下载。

链接如下:

https://search.jd.com/Search?keyword=%E7%94%B5%E5%8A%A8%E5%89%83%E9%A1%BB%E5%88%80&enc=utf-8&suggest=4.def.0.SAK7|MIXTAG_SAK7R,SAK7_M_AM_L5384,SAK7_M_COL_U17678,SAK7_S_AM_R,SAK7_SC_PD_R,SAK7_SM_PB_L16675,SAK7_SS_PM_LC|&wq=%E7%94%B5%E5%8A%A8&pvid=bb682c18bcb7479c9b220aab0f42d0a6

按下F12键(打开开发者工具),在“元素”选项页中,单击“元素检查工具” 或者查看源代码,后再单击你要选的图片,可以找到图片地址:

Futaike.net 0319 172103
Futaike.net 0319 172103

复制出来就是:

//img13.360buyimg.com/n7/jfs/t1/88836/2/24471/163175/622eefb5E1e47b683/c2bf1d990c407594.jpg,没有http:头需要我们在请求时加上。

然后我们就可以写代码来下载了。

Futaike.net 0318 173418
设置保存路径

然后我们再写一个下载函数

Futaike.net 0318 173431
Futaike.net 下载函数

# 调用函数

Futaike.net 0318 173455
Futaike.net 调用函数

运行一下:

Futaike.net 0318 173524
Futaike.net 下载成功

然后我们再到文件夹下查看:

Futaike.net 0319 172247
Futaike.net 下载成功

可以看到图片下载成功了。

那么下一步我们的目标就是批量获取,批量获取需要取得这个页面所有的图片链接,我们可以用的工具有很多:比如:xpath定位元素、正则工具所有的目标元素等。

这里我们使用xpath 定位:

引用etree 库: from lxml import etree,然后通过页面分析,找出所有商品图片的xpath路径。

然后我们来写一下代码:

Futaike.net 0318 191146
Futaike.net 导入模块
Futaike.net 0318 191212
Futaike.net 0318 191212

写好以后,我们运行一下,可以看到文件都下载成功了。

爬虫入门 | 如何使用python 写爬虫爬取京东商品页面的高清主图
爬虫入门 | 如何使用python 写爬虫爬取京东商品页面的高清主图

然后我们再看一下文件夹,可以看到下载的文件都在了:

爬虫入门 | 如何使用python 写爬虫爬取京东商品页面的高清主图
爬虫入门 | 如何使用python 写爬虫爬取京东商品页面的高清主图

这样一页所有的商品图片就下载好了。

如果需要下载多页的呢,只要我们再加页数循环,访问多个页面,进行下载就可以了。

https://search.jd.com/Search?keyword=%E7%94%B5%E5%8A%A8%E5%89%83%E9%A1%BB%E5%88%80&qrst=1&suggest=4.def.0.SAK7%7CMIXTAG_SAK7R%2CSAK7_M_AM_L5384%2CSAK7_M_COL_U17678%2CSAK7_S_AM_R%2CSAK7_SC_PD_R%2CSAK7_SM_PB_L16675%2CSAK7_SS_PM_LC%7C&wq=%E7%94%B5%E5%8A%A8%E5%89%83%E9%A1%BB%E5%88%80&stock=1&pvid=bb682c18bcb7479c9b220aab0f42d0a6&page=3&s=56&click=0

这是多页的网址,我们观察一下,发现有page=3这样的参数,这个就是翻页的参数了,那么我们只要把前面的网址再加上这个参数就可以循环访问多页了。

那么我们把上面的代码再改一下,比如我们需要下载20页,

爬虫入门 | 如何使用python 写爬虫爬取京东商品页面的高清主图
爬虫入门 | 如何使用python 写爬虫爬取京东商品页面的高清主图

这样,就可以了。然后我们调用函数进行循环访问并下载。

Futaike.net 0318 192336
Futaike.net 循环下载

最后 获取到所有目标页的商品图片。

Futaike.net 0319 172413
Futaike.net 下载成功

The End