Python爬蟲(第一季)之爬取淘寶圖片
阿新 • • 發佈:2019-02-03
一、分析規律
第一頁時
第二頁時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)
三、效果