動態加載圖片網站爬蟲基本操作


1判斷動態加載

檢查流程如下:
1.1 瀏覽器檢查,觀察network->XHR,確定是否是動態頁面(如果隨着下拉頁面,項目不斷增加就說明是動態頁面)。

1.2. 確定是動態頁面以后,觀察任意幾個請求項目(Network->XHR)中的Request url (network->XRH->headers—> Request headers-->referer)中的鏈接有什么不同,也就是觀察這些參數有什么不同和相同的(參數在headers-> query string parameters中)

1.3. 想辦法構造出這個請求url,獲取到目標 或者 動態實際頁面的HTML代碼文件

1.4. 然后就是要解析獲取的HTML代碼了,於是先觀察一下 Network->XRH->preview中的信息,看看要提取的是哪些

因此:
通過觀察1.2中參數不同的鏈接,找到真實加載的鏈接。所以第一步先構造出這樣的一個url

 from urllib.parse import urlencode
 params={
      'page': str(page),
      'per_page': '12'
  }
 base_url='https://unsplash.com/napi/photos?'
 url = base_url + urlencode(params)

  response=requests.get(url,headers=headers,verify=False)  #自行構造headers

上述構造使得我們獲得我們需要的資源,然后進行提取返回內容里面的id,構造真實的下載鏈接。通過fiddler抓取點擊圖片下載按鈕后(不能確定是哪個進程,就多點擊幾個下載按鈕,就好分辨哪類表示是發送下載鏈接的進程),可以知道發送的獲取圖片的地址是哪個(爬蟲時候構造這個鏈接就行了)。如下圖,點擊下載按鈕后,GET :/photos/WvkdIJh3GJ0/download?force=true 也就是代表https://unsplash.com//photos/WvkdIJh3GJ0/download?force=true就可以進行下載了。

於是我們只要獲取 上步操作response中的id進行構造下載鏈接,就可以實現下載了。

2.基於爬取unsplash.com爬取圖片的實戰

https://github.com/jacker2019/pythonpractice/blob/master/爬蟲/爬取AJax渲染的動態圖片網站unsplash.py

3.關於json的小筆記

如果使用filter抓包的話,很明顯會發現json格式的數據,json格式數據,實際是字典套字典的具有結構的這么一種數據格式
碰到json格式,想把它轉換為python可以處理的數據格式

json.load()與json.loads()轉化為python數據類型

json.dump()與json.dumps()轉化為json類型。

注意:有s的表示對象是json字符串,沒有s表示對象是json類文件對象

寫在最后

小白筆記,有錯誤或不當之處,還請大佬們指正!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM