1. 程式人生 > >汽車之家網站為例-爬蟲的編寫,爬取圖片

汽車之家網站為例-爬蟲的編寫,爬取圖片

                                  汽車之家圖片的爬取

      汽車之家有很多汽車的點評、價格、圖片等資訊,那麼怎麼才能編寫一個爬蟲來獲得我們所需要的資訊呢,很簡單,兩個工具便可以了,一個網頁解析工具requests,一個正則匹配工具re,下面以Python語言編寫爬蟲。

首先在火狐或者chrome瀏覽器下開啟汽車之家的網頁,然後點選小型車,得到:

關閉小型車選項,得到全部車型,並且用F2 開啟開發者選項

可以看到下面有幾個html結尾的檔案,那就是我們需要的,點選相應的網址,可以在其右側得到我們需要的URL地址,根據這個地址便可以利用Python的包進行網頁內容的爬取了

  有了URL下面進行爬蟲的編寫:

import requests
import re

brand['A','B','C','D','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','V','W','X','Y','Z']

url="https://www.autohome.com.cn/grade/carhtml/B.html" #以B brand為例

response=requests.get(zg[1])
response.encoding='gb2312'

html=response.text

   列印上述得到的html會得到這樣的資訊:裡面有很多以B開頭的車型,賓士,寶馬,寶駿等等。。。

    接下來還是通過檢視網頁車型圖片的html地址,然後在上述的檔案中進行提取:

img_url=re.findall(r'href="//car.autohome.com.cn/pic/series/(.*?).html#pvareaid=103448"', html) 

結果:

    接下來的工作就是講提取到的資訊和網址進行拼接以及讀取解析操作,就不一一展開了。直接上程式碼

img_url_1 = 'https://car.autohome.com.cn/pic/series/' + img_url[1] + '-1.html#pvareaid=2042220' #其中-1是車身外觀 10是內飾,自己去網頁看原始碼.......

response_1=requests.get(img_url_1)

html_2=response_1.text
img_url_2=re.findall(r'<a href="/photo/series/(.*?)"', html_2 )

img_url_3= list(map(lambda x:'https://car.autohome.com.cn/photo/series/'+x,img_url_2))
#img_url_3就是完整的html地址:eg:'https://car.autohome.com.cn/photo/series/36070/1
#/4506296.html'

for url in img_url_3:
    response_2=requests.get(url)
    response_2.encoding='gb2312'
    html_2=response_2.text
    img_url=re.findall(r'<img id="img" src="(.*?)"', html_2 )
    img_url_2="https:"+img_url[0]
    img_response=requests.get(img_url_2)
    img_file_name_1=re.findall(r'<meta name="description" content="(.*?)"', html_2 )
    b=img_file_name_1[0]
    img_file_name=img_url_2.split('/')[-1]
    img_file_name_2=b+img_file_name
    f=open(img_file_name_2,'wb')    #新建一個jpg圖片檔案
    img_data=img_response.content 
    f.write(img_data)               #講二進位制圖片資料寫入檔案,可以在本地看到生成的圖片

至此為止,最後在本地檢視儲存成功的檔案便可。

注:根據不同的需求,方法相同,爬取不同的資料。