Python---爬取京東商城的圖片

爬取京東商城的圖片

1.咱們爬取數據時首先本身要明確須要什麼,咱們在爬取京東商城的圖片是首先要獲取url,打開京東網頁,點擊手機類型,選擇所有手機,觀察瀏覽器的地址欄的變化,發現url主要是有:https://list.jd.com/list.html?cat=9987,653,655&page=1,而page就是每頁的標誌.html

2.點擊F12,經過瀏覽器查看部分源代碼,尋找特需規律,咱們發現每一頁開始都是從<div id="plist">開始的,以<div class="page clearfix">結束的,接着查看圖片的規律,<img width="220" height="220" data-img="1" data-lazy-img="//360.sadsad/dsas544/rffdfsdf55/dsfdsf.jpg">,那咱們就能夠根據這個規律來寫正則表達式來過濾咱們想要的信息。python

<div id="plist".+?<div class="page clearfix">正則表達式

<img width="220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">瀏覽器

def craw(url, page):
    # 1.獲取網頁的數據
    html1 = urllib.request.urlopen(url).read()
    html1 = str(html1)
    # 2.經過正則獲得每頁圖片的數據
    pattrn1 = '<div id="plist".+?<div class="page clearfix">'
    result1 = re.compile(pattrn1).findall(html1)
    image = result1[0]
    # 3.在經過正則拿到每頁全部的圖片連接
    pattrn2 = '<img width="220" height="220" data-img="1" data-lazy-img="//(.+?\.jpg)">'
    imaglist = re.compile(pattrn2).findall(image)
    # 4.遍歷全部的圖片連接,將圖片保存在本地,經過頁號和序號有序的排列
    x = 1
    for imageurl in imaglist:
        imagename = "D:/python/image"+str(page)+str(x)+".jpg"
        imageurl = "http://"+imageurl
        try:
            urllib.request.urlretrieve(imageurl, filename=imagename)
        except urllib.error.URLError as e:
            if hasattr(e, "code"):
                x += 1
            if hasattr(e, "reason"):
                x += 1
        x += 1    


for i in range(1, 79):
    url = "https://list.jd.com/list.html?cat=9987,653,655&page="+str(i)
    craw(url, i)

其實爬蟲的關鍵是在於分析,咱們要根據本身的需求對網頁及西寧分析,而後找出規律,寫出正確的正則表達式來過濾本身的信息,拿到想要的東西,在就是在請求的過程當中咱們須要注意許多細節。url

相關文章
相關標籤/搜索