简介:爬取京东商城手机类商品图片
思路:
1. 获取需要爬取手机商品内容的url,
打开京东商城首页 -- 手机/营运商/数码 -- 手机。获得URL为:https://list.jd.com/list.html?cat=9987,653,655
2. 查看URL变化过程
单击下一页,查看商品的URL变化情况
点击第二页:URL为:https://list.jd.com/list.html?cat=9987,653,655&page=2&sort=sort_rank_asc&trans=1&JL=6_0_0&ms=5#J_main
点击第三页:URL为:https://list.jd.com/list.html?cat=9987,653,655&page=3&sort=sort_rank_asc&trans=1&JL=6_0_0#J_main
......
在这GET的请求中可以发现,关键信息为$page的字段信息,page的值代表者第几页
所以,可以在爬取过程中使用 for 循环实现页面的切换
3. 查看图片的网页信息
F12 查看图片的信息,可以发现图片对应的链接代码是:
<img width="220" height="220" data-img="1" src="//img14.360buyimg.com/n7/jfs/t5068/191/1900595808/365322/635c9e26/58f5c5e0Nb72bc1d3.jpg"
4. 下载保存图片
使用urllib.urlreieve()将对应链接的图片保存到本地
脚本代码如下:
import re
import urllib
import urllib2
def JD_picture(url, page):
html1 = urllib2.urlopen(url).read()
html1 = str(html1)
pat2 = '<img width="220" height="220" data-img="1" src="//(.+?\.jpg)">'
imagelist = re.compile(pat2).findall(html1)
x = 1
for imageurl in imagelist:
imagename = str(page) + str(x) + ".jpg"
imageurl = "http://" + imageurl
try:
urllib.urlretrieve(imageurl, filename="C:\PyCharm\Crawl_Photo\jingdong")
except urllib2.URLError as e:
if hasattr(e, "code"):
x += 1
if hasattr(e, "reason"):
x += 1
x += 1
for i in range(1, 20):
url = 'https://list.jd.com/list.html?cat=9987,653,655&page=' + str(i)
JD_picture(url,i)