簡介:爬取京東商城手機類商品圖片
思路:
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)