天天看點

手把手教你爬取天堂網1920*1080大圖檔(批量下載下傳)——理論篇

/1 前言/

平時我們要下載下傳圖檔,要要一個一個點選下載下傳是不是覺得很麻煩?那有沒有更加簡便的方法呢?答案是肯定的,這裡我們以天堂網為例,批量下載下傳天堂網的圖檔。
           

/2 項目準備工作/

首先 我們第一步我們要安裝一個pycham的軟體。可以參考這篇文章:Python環境搭建—安利Python小白的Python和Pycharm安裝詳細教程。

天堂網的網址:
           
https://www.ivsky.com/bizhi/1920x1080/
我們需要下載下傳幾個庫,怎麼下載下傳呢?打開pycharm,依次點選File,再點開Settings,如下圖所示。
           
打開後會出現這個界面點選你的項目名字(project:(你的項目名字)),之後在project  interpreter下,點選加号,而後下載下傳我們需要的庫,如下圖所示。
           
本項目需要用到的是庫是requests、lxml、fake_useragent,如下圖所示。fake_useragent一般是沒有的,需要通過下面的指令進行安裝:
           

pip install fake_useragent

/3 項目實作/

1. 導入需要的庫(requests,lxml, fake_useragent)。

2. 我用了封裝方法去實作各個部分的功能。首先要寫一個架構:構造一個類TianTangWebsite ,然後定義一個__init__方法裡繼承(self),再定義一個主方法(main)。最後實作這個main方法,依次一步一步進行實作。

3. 我們把天堂網的網址拿過來,構造請求頭。這裡說一下這個UserAgent的擷取方法。在打開天堂網的網站後,按下鍵盤上的F12鍵,之後會進入到開發者模式,之後點開network,如下圖所示。
           
4. 而後随便點選一個name,複制header裡邊的UserAgent就可以了。 
           
  1. 我們點選下一頁的位址觀察網址的變化,如下所示:
https://www.ivsky.com/bizhi/1920x1080/index_2.html https://www.ivsky.com/bizhi/1920x1080/index_3.html https://www.ivsky.com/bizhi/1920x1080/index_4.html
很明顯的發現,這個網址的網頁數字一直在變化。我們可以用格式化{}去代替變化的值,類似這樣:
           
https://www.ivsky.com/bizhi/1920x1080/index_

{}.html

6. 然後我們用for循環去周遊這些網址,代碼如下所示:
           

def main(self):

for i in range(1,2):#頁數随機客戶随便 設定
  url=self.url.format(i)
  print(url)
 7. 我們定義這個get_home()方法去請求到這個網址。
           
9. 我們需要解析得到的資料,接下來定義一個xiap的方法,拿到我們請求的網址。接下來就是該項目的關鍵了。

10. 至此,針對反爬蟲的措施我們已經提前做好了準備,下一步将進行網頁結構的分析以及網頁圖檔位址資料的提取,并針對解析出來的圖檔位址予以批量下載下傳,具體實作咱們下篇文章進行詳解。
           

/4 小結/

本文主要内容為對圖檔網站進行了基本簡介,基于 Python 中的爬蟲庫 requests 、lxml、fake_useragent,提前部署了請求頭,模拟浏覽器,針對反爬蟲的措施我們已經提前做好了準備。

下篇文章将帶大家進行網頁結構的分析以及網頁圖檔位址資料的提取,并針對解析出來的圖檔位址予以批量下載下傳,敬請期待~~