日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

生活中,經常需要在網絡上查找圖片素材進行引用或者自行使用,獲取圖片的方式不限于百度圖片以及圖片素材網站中進行下載。一般的網站只能手動將圖片另存為,當我們需要保存大量且相同系列的圖片,難道只能逐張圖片以另存為的方式保存嗎?相信大家非常不愿意這么做,接下來將介紹一種易學易用的方法,利用Python語言制作的網絡爬蟲工具批量抓取圖片。

em…最近想找一些壁紙,那就來個批量下載圖片吧。

作業工具

· Python 3.6或以上,下載地址:

https://www.python.org/downloads/

· 瀏覽器:chorme、Firefox(筆者推薦使用Firefox)

· 文本編輯器:sublime text 3

爬蟲介紹

網絡爬蟲,也叫網絡蜘蛛(Web Spider)。它根據網頁地址(URL)爬取網頁內容,而網頁地址(URL)就是我們在瀏覽器中輸入的網站鏈接。比如:https://www.baidu.com/,它就是一個URL。

講解爬蟲原理之前,我們需要先學會如何查看網頁源代碼(如掌握,請跳過)。

1. 審查元素(查看源代碼)

這個操作非常簡單。

1. 打開瀏覽器

2. 打開一個網頁

3. 在網頁空白處點擊右鍵-查看元素(檢查,或者按F12)

4. 點擊“查看器”或“Elements”

教你用Python批量下載靜態頁面圖片

左下角的“頁面源代碼”就叫做html,HTML也叫超文本標記語言,是這個網頁的真實面貌。沒錯,那些五顏六色的網頁真實面貌都是可讀性較低的HTML,而我們的看到的是瀏覽器根據服務器返回的HTML的代碼通過渲染顯示成可讀性極高的網頁。

了解了HTML后,肯定想知道這些難看的HTML可以做什么,那么到了您的機器上,當然是由你說了算咯。

是的,真的可以為所欲為。(看我余額)

教你用Python批量下載靜態頁面圖片

嗯,很明顯這是假…

真相是…

教你用Python批量下載靜態頁面圖片

順便交大家個小技巧,因為經常依賴瀏覽器記住密碼功能,而忘記原密碼怎么辦?

教你用Python批量下載靜態頁面圖片

將密碼欄處的“password”屬性,修改成“text”屬性。

教你用Python批量下載靜態頁面圖片

(記住密碼的選項是選不得的,畢竟可以明文顯示出來。)

總結一下,HTML是由服務器接收到瀏覽器發送的請求,返回給瀏覽器的一個HTML文本,瀏覽器將其渲染成網頁。換句話說,人由基因決定原始容貌,網頁由HTML決定。人可以整容,網頁也可以整,只不過網頁比人更短暫,刷新就是重生(刷新會重新接收服務器發來的HTML,原來的會被拋棄,因此網頁也只能在本地為所欲為)。

2. 為什么是Python

為什么選擇Python來爬蟲?

因為寫爬蟲是需要一邊寫,一邊測試,測試不過再改改。這個過程用Python寫起來最為方便,其次是Python提供了強大的第三方庫,無論是巨簡單的爬蟲還是巨復雜的爬蟲都能夠輕松搞定。

爬蟲需要處理的一些問題:

  • 發送HTTP請求
  • 解析HTML源碼
  • 處理反爬蟲機制
  • 效率
  • ......

說到底就是因為Python在處理上面的事情的時候有很多庫,而且語法簡潔,代碼風騷,開發者的注意點可以集中在自己要做的事情上。

簡單得不能再簡單的粗略不嚴謹地說明一下:

發送HTTP請求:

Python里我最喜歡用requests發送請求,發送請求的代碼是這樣的:

  •  
  •  
  •  
  •  
  •  

requests.get(URL) # GETrequests.post(URL,DATA) # 
POSTrequests.put/delete/head/... # 各種請求# P.S.使用下面的代碼處理Cookie更酸爽requests.Session()

到目前為止,還沒有發現其他語言有比這個更加簡單的發送HTTP請求的方式了(不排除我人見識短的可能性)。

解析HTML源碼:

Python默認可以使用HtmlParser來解析HTML,如果你覺得用著不爽(確實用著不爽),可以有很多第三方庫來優雅地做這些事情(lxml / BeautifulSoup / ...),甚至可以通過一些庫(selenium等)來直接使用瀏覽器。你可以直接使用類似 body.div.a['href'] 這樣簡單到爆的語法取自己需要的內容。

本文主要采用BeautifulSoup庫來解析HTML的內容。

處理反爬蟲機制:

還是Python的requests庫,它可以很方便的套上一個代理IP(部分網站反爬蟲機制是封IP,被封了就偽裝一個好了。):

  •  
  •  

request=requests.Session()request.proxies= ....

效率:

爬蟲的效率問題基本不在解析信息的速度上,網絡IO的時間其實才是大頭。比如你請求網頁花了500ms,相應的你的解析速度是1ms還是10ms已經不重要了。

其他還有很多地方就不一一總結了,簡而言之,寫爬蟲來講,Python相對于其它語言的優勢在于有足夠簡潔的語法和足夠多的庫支持,開發效率很高,而且運行效率方面,網絡IO的時間已經大大沖淡了Python的效率問題。

用Python可以1個人做5個人的事情,只是多用10倍的機器,多么劃算。

 

爬取網站圖片前的準備工作

1. 安裝Python

官方下載:
https://www.python.org/downloads/

教你用Python批量下載靜態頁面圖片

勾選“Add Python 3.6 to PATH”,直接下一步,安裝完成。

教你用Python批量下載靜態頁面圖片

打開“命令提示符”,敲下“python”,啟動成功。

教你用Python批量下載靜態頁面圖片

2. 安裝第三方庫

既然稱為第三方庫了,那就是本來不是Python已有的,因此需要我們自行安裝庫:

  • requests(第三方庫需下載,中文說明文檔:http://docs.python-requests.org/zh_CN/latest)
  • BeautifulSoup4(第三方庫需下載,中文說明文檔:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/)
  • re
  • urllib.request
  • os

安裝代碼:安裝第三方庫,在系統直接調用PIP程序安裝即可。

  •  

pip install beautifulsoup4

pip install requests

教你用Python批量下載靜態頁面圖片

至此,我們的環境就準備好了,多么簡單。

 

3. 爬蟲思路

爬蟲主要的核心在于以下三點:

  • 解析網頁結構(基礎篇)
  • 獲取目標數據途徑(基礎篇)
  • 整合優化代碼(實戰篇)

代碼整合過程部分的內容將會移到《【簡單易學】教你用Python批量下載靜態頁面圖片(實戰篇)》詳細講解,敬請關注!

解析網頁結構

首先確認我們的目標爬取網站:https://www.socwall.com/

其次就是找到高清圖片保存在什么頁面里,獲取到高清圖片的存放地址。

最后使用代碼去批量下載這些高清圖片。

教你用Python批量下載靜態頁面圖片

這一部分我們重點講講如何一步一步地分析網頁,最終達到找到這些高清圖片的存放地址。

先看看首頁是什么樣的~ 順便以超市買東西為例子來分析一下,我們到底怎么找到目標商品的存放地址。

教你用Python批量下載靜態頁面圖片

3.1 通過觀察整個頁面的結構,分析網頁組成成分。

教你用Python批量下載靜態頁面圖片

(上方紅框是列表頁,下方紅框是列表頁的頁碼)

整個頁面像個貨架一樣展示商品,下面的頁碼就像是樓層號碼,而貨架上擺放的只是質量較差的(被壓縮過的)展示商品(縮略圖),因此我們要拿到貨真價實的商品(目標圖片)就需要到它所在的樓層,找到它擺放在貨架上的地方。


 

3.2 上方列表頁放置的是圖片的縮略圖,點擊縮略圖進入該縮略圖的專屬頁面。

教你用Python批量下載靜態頁面圖片

來到目標商品的貨架前,我們發現有專屬的取貨窗口( 右側的Download按鈕)。


 

3.3 進入內層頁面,找到了獲取這張圖片最終高清原圖地址。

教你用Python批量下載靜態頁面圖片

點擊右側Download按鈕。

教你用Python批量下載靜態頁面圖片

我們終于找到了貨真價實的商品(目標圖片),再次只需要另存為圖片即可保存到本地!

OK!

獲取目標數據途徑

總結上述獲取高清原圖的過程,總結獲取原圖的途徑:

  • 選擇目標頁面(頁碼)
  • 選擇目標貨架(列表頁)
  • 選擇目標圖片(縮略圖)
  • 選擇原圖下載(高清原圖)

一共四個步驟,我們的目的就算完成了,就下來的任務是使用代碼來重復這個過程。

分享到:
標簽:Python
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定