整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Python爬蟲實踐:30行代碼實現爬取網站圖片,案

          Python爬蟲實踐:30行代碼實現爬取網站圖片,案例分享篇

          ython作為一門高級編程語言,它的定位是優雅、明確和簡單。我學用python差不多一年時間了,用得最多的還是各類爬蟲腳本:寫過抓代理本機驗證的腳本,寫過論壇中自動登錄自動發貼的腳本,寫過自動收郵件的腳本,寫過簡單的驗證碼識別的腳本。

          這些腳本有一個共性,都是和web相關的,總要用到獲取鏈接的一些方法,故累積了不少爬蟲抓站的經驗,在此總結一下,那么以后做東西也就不用重復勞動了。

          下面分享一個小案例,實現爬取網站里面的圖片,包括源碼及實現思路。

          一、還原手工操作

          所謂爬取頁面圖片,正常人手動操作可以分為兩步:

          1.打開頁面

          2.選中圖片下載到指定文件夾

          用代碼實現的話可以節省掉每次下載圖片的操作,運行代碼實現批量下載。

          二、設計代碼實現

          步驟一:導入相關庫操作

          import urllib #導入urllib包

          import urllib.request#導入urllib包里的request方法

          import re #導入re正則庫

          步驟二:定義解析頁面 load_page()

          這個函數實現打開傳入的路徑并將頁面數據讀取出來,實現代碼,包括發送請求,打開頁面,獲取數據。

          代碼實現:

          def load_page(url):

          request=urllib.request.Request(url)#發送url請求

          response=urllib.request.urlopen(request)#打開url網址

          data=response.read()#讀取頁面數據

          return data#返回頁面數據

          步驟三:定義get_image()函數

          首先利用正則表達式匹配圖片路徑并存到數組中。

          其次遍歷數組實現圖片下載操作。

          代碼實現:

          def get_image(html):

          regx=r'http://[\S]*jpg' #定義正則匹配公式

          pattern=re.compile(regx)#構造匹配模式,速度更快

          get_image=re.findall(pattern,repr(html))#repr()將內容轉化為字符串形式,findall列表形式展示正則表達式匹配的結果

          num=1 #定義變量控制循環

          for img in get_image: #定義變量遍歷數組

          image=load_page(img)#將圖片路徑傳入加載函數

          with open('F:\photo\%s.jpg'%num,'wb') as fb: #以只讀方式打開圖片并命名

          fb.write(image) #寫入內容

          print('正在下載第%s張圖片'%num)

          num=num+1 #變量遞增

          print("下載完成")

          步驟四:函數調用

          #調用函數

          url='http://p.weather.com.cn/2019/10/3248439.shtml' #傳入url路徑

          html=load_page(url)#加載頁面

          get_image(html)#圖片下載

          關鍵單詞釋義

          如果第一次接觸爬蟲代碼,相信有幾個單詞大家很陌生,為了方便記憶我把他們歸類到一起加深印象,你也可以拿出一張白紙試著努力回憶著。

          1.爬蟲協議庫ulrlib、urllib.request

          2.正則匹配庫rb

          3.發送請求方法request()

          4.打開頁面方法urlopen()

          5.讀取數據方法read()

          6.正則表達式-所有圖片【\S】*.jpg

          7.匹配模式定義compile()

          8.查找匹配findall()

          9.循環遍歷語句 for a in b

          10.打開文件 并命名 with open()... as fb

          11.寫到... write*()

          12.輸出語句 print()

          到現在為止可以把我上面的代碼在pycharm中打開嘗試著運行起來吧!

          最后,有2個報錯信息匯總供參考:

          1. module 'urllib' has no attribute 'requset'

          定位到當行語句,發現request 單詞拼寫錯誤。

          2. 沒有報錯,但是圖片沒有下載成功

          重新檢查代碼,發現正則表達式寫的有錯誤,記住是大寫的S修改完之后看效果。

          我是誰?

          我是一名從事了多年軟件測試的老測試員,今年年初我花了一個月整理了一份最適合2020年學習的軟件測試學習干貨,可以送給每一位對軟件測試感興趣的小伙伴,想要獲取的可以關注我的頭條號+私信:【測試】,即可免費獲取。

          內容首發于工粽號:程序員大澈,每日分享一段優質代碼片段,歡迎關注和投稿!

          大家好,我是大澈!

          本文約 700+ 字,整篇閱讀約需 1 分鐘。

          今天分享一段優質 HTML 代碼片段,只需一行代碼即可實現圖片懶加載的處理。

          老規矩,先閱讀代碼片段并思考,再看代碼解析再思考,最后評論區留下你的見解!

          <img src="example.jpg" alt="示例圖片" loading="lazy">


          分享原因

          這段代碼使用 HTML5 提供的一個非常簡單的方法:為圖片元素添加 loading="lazy" 屬性,實現了圖片的懶加載。

          通過這種方式,我們可以讓瀏覽器自動處理圖片懶加載,無需額外的 js 腳本支持。

          這對于不需要考慮兼容性的項目來說,實現圖片的懶加載非常高效!

          代碼解析

          1. src="example.jpg"

          src屬性指定了要顯示的圖片的文件路徑,這里是example.jpg。

          2. alt="示例圖片"

          alt屬性提供了圖片的替代文本描述。

          當圖片由于某種原因無法加載時,這個文本會顯示出來,同時也有助于屏幕閱讀器為視障用戶描述圖片內容。

          3. loading="lazy"

          loading屬性設置為lazy表示延遲加載圖片。

          當設置了 loading="lazy" 時,瀏覽器會延遲加載圖片,直到圖片即將進入視口(用戶即將看到的屏幕區域)。這意味著在頁面加載的初始階段,瀏覽器不會立即請求和加載這些圖片,而是優先加載頁面的關鍵內容,如文本和主要布局。

          當用戶滾動頁面使得圖片即將可見時,瀏覽器才會開始加載圖片資源,從而減少了初始頁面加載時的網絡請求數量和數據量,加快了頁面的呈現速度。

          大多數現代瀏覽器都支持 loading="lazy" 屬性,但在一些較舊的瀏覽器中可能不被支持。

          對于不支持的瀏覽器,可以使用 JavaScript 庫(如 lazysizes)來實現類似的懶加載效果。

          網頁設計中,添加圖片并為其添加超鏈接是常見的需求。通過使用HTML,我們可以輕松實現這些功能。下面將詳細介紹如何實用地添加圖片,并為圖片添加超鏈接。


          html代碼


          首先,我們需要了解HTML中如何添加圖片。在HTML中,我們使用`<img>`標簽來插入圖片。`<img>`標簽有幾個重要的屬性,包括`src`、`alt`和`width`、`height`等。`src`屬性用于指定圖片的URL地址,`alt`屬性用于提供圖片無法加載時的替代文本,而`width`和`height`屬性則用于設置圖片的寬度和高度。

          下面是一個簡單的示例,展示如何在HTML中添加圖片:

          <img src="這里寫圖片地址,要帶http協議,比如:https://www.chaojilu.com" alt="看不到圖片,就顯示這個文字" width="500" height="300">

          在這個示例中,我們使用了`<img>`標簽,并通過`src`屬性指定了圖片的URL地址。同時,我們還設置了`alt`屬性以提供替代文本,并通過`width`和`height`屬性設置了圖片的尺寸。

          接下來,我們來看如何為圖片添加超鏈接。在HTML中,我們使用`<a>`標簽來創建超鏈接。`<a>`標簽的`href`屬性用于指定鏈接的目標地址。為了將圖片包含在超鏈接中,我們可以將`<img>`標簽放置在`<a>`標簽內部。

          下面是一個示例,展示如何為圖片添加超鏈接:

          <a href="https://www.chaojilu.com">
          <img src="image.jpg" alt="看不到圖片,就顯示這個文字"width="這里寫寬度" height="高度">>
          </a>

          在這個示例中,我們將`<img>`標簽放置在`<a>`標簽內部,并通過`href`屬性指定了鏈接的目標地址。當用戶點擊圖片時,將會跳轉到指定的網址。同時,我們還通過`alt`屬性為圖片提供了替代文本,以便在圖片無法加載時為用戶提供提示。

          除了基本的添加圖片和超鏈接功能外,我們還可以通過一些技巧來優化圖片的顯示和加載效果。例如,我們可以使用CSS樣式來設置圖片的邊框、圓角等外觀屬性,提升頁面的美觀度。同時,我們還可以通過壓縮圖片文件大小、使用懶加載等技術來優化圖片的加載速度,提高用戶體驗。

          需要注意的是,在添加圖片和超鏈接時,我們需要確保所使用的圖片資源是合法且可訪問的。避免使用未經授權或侵權的圖片資源,以免引發法律問題。同時,我們還應該關注圖片的版權和使用協議,確保在使用圖片時遵守相關規定。

          總之,通過使用HTML的`<img>`和`<a>`標簽,我們可以輕松地在網頁中添加圖片并為圖片添加超鏈接。通過合理設置屬性和優化技巧,我們可以提升圖片的顯示效果和加載速度,為用戶提供更好的瀏覽體驗。

          各位鹿友有什么不懂可以在評論區留言,咱們一起探討學習。


          主站蜘蛛池模板: 精品不卡一区中文字幕 | 久久精品中文字幕一区| 91麻豆精品国产自产在线观看一区 | 日韩精品一区二区三区中文3d| 国产在线一区二区视频| 色老头在线一区二区三区| 波多野结衣一区在线观看| 蜜臀AV免费一区二区三区| 精品视频一区二区三区在线播放| 亚欧色一区W666天堂| 日韩精品电影一区亚洲| 呦系列视频一区二区三区| 国产一区二区精品| 国产一区二区三区夜色| 在线观看国产一区二区三区| 无码人妻精品一区二区蜜桃 | 视频一区视频二区日韩专区| 亚洲大尺度无码无码专线一区| 高清一区二区三区日本久| 中文字幕一区日韩在线视频| 国产精品va一区二区三区| 人妻视频一区二区三区免费| 久久精品无码一区二区无码| 无码人妻久久一区二区三区免费| 亚洲人成网站18禁止一区| 波多野结衣中文字幕一区 | 91久久精一区二区三区大全| 亚洲片一区二区三区| 国产高清在线精品一区小说| 久久综合一区二区无码| 一区二区三区在线| 亚洲日韩激情无码一区| 国产裸体歌舞一区二区| 一区二区三区精品| 精品一区高潮喷吹在线播放| 深田咏美AV一区二区三区| 中文字幕一区二区三区免费视频| 国产成人无码精品一区在线观看| 久久久99精品一区二区| 国产激情精品一区二区三区| 亚洲一区二区三区深夜天堂|