简介:爬取京东商城手机类商品图片
思路:
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:PyCharmCrawl_Photojingdong") 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)