1. 程式人生 > >Python爬蟲(第一季)之爬取淘寶圖片

Python爬蟲(第一季)之爬取淘寶圖片

一、分析規律

第一頁時

這裡寫圖片描述

第二頁時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)

三、效果

這裡寫圖片描述