python初始化函數_當你學會了Python爬蟲,網上的圖片素材就免費了

前言

本文的文字及圖片來源于網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯系我們以作處理。

加入作者的python學習圈子:1156465813 即可免費獲取,資料全在群文件里。資料可以領取包括不限于Python實戰演練、PDF電子文檔、面試集錦、學習資料等

一、項目背景

在素材網想找到合適圖片需要一頁一頁往下翻,現在學會python就可以用程序把所有圖片保存下來,慢慢挑選合適的圖片。

二、項目目標

1、根據給定的網址獲取網頁源代碼。

2、利用正則表達式把源代碼中的圖片地址過濾出來。

3、過濾出來的圖片地址下載素材圖片。

三、涉及的庫和網站

1、網址如下:

https://www.51miz.com/

2、涉及的庫:requestslxml

四、項目分析

首先需要解決如何對下一頁的網址進行請求的問題。可以點擊下一頁的按鈕,觀察到網站的變化分別如下所示:

https://www.51miz.com/so-sucai/1789243.html
https://www.51miz.com/so-sucai/1789243/p_2/
https://www.51miz.com/so-sucai/1789243/p_3/

我們可以發現圖片頁數是1789243/p{},p{}花括號數字表示圖片哪一頁。

五、項目實施

1、打開覓知網,在搜索中輸入你想要的圖片素材(以鼠年素材圖片為例)。

170fafce5b30640c2298450e6140e090.png

2、根據上一步對網址的分析,首先我們定義一個類叫做ImageSpider,類里面定義初始化函數、發送請求獲取響應數據函數、解析函數、主函數。首先初始化函數,準備url地址和headers,代碼如下圖所示。

cf99b72049b09d165d25eb53cb6ad1ea.png

3、發送請求獲取相應數據函數。

b48be7942073e4300f5fbd16d1c39b67.png

4、解析數據,使用xpath獲取二級頁面鏈接,最后把圖片存儲在文件夾中。使用谷歌瀏覽器選擇開發者工具或直接按F12,發現我們需要的圖片src是在img標簽下的,于是用Python的requests提取該組件。

6f3549f1ab2a0ebd07231403abd243cc.png

131ee0d5ccb1c5e33f0b80e93bcef998.png

5、主函數,代碼如下圖所示。

2bfec2dfaf3ce6d9a0b0ac7824b06f4b.png

六、效果展示

1、運行程序,在控制臺輸入你要爬取的頁數,如下圖所示。

9f3d641f0417c81d95a7360cac009834.png

2、在本地可以看到效果圖,如下圖所示。

bdc5393b71e3223d3cf3c4434f84a098.png

最后

如果你處于想學Python或者正在學習Python,Python的教程不少了吧,但是是最新的嗎?說不定你學了可能是兩年前人家就學過的內容,我來分享一波2020最新的Python教程。加入我的學習圈子:1156465813,就可以領取學習資料

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/396576.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396576.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396576.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第三周作業(一)單元測試

下載vs2015安裝包,打開進行安裝. 選擇顏色 安裝完成,需要登錄 啟動vs 單元測試 1.打開vs界面。 2.新建項目。選擇Visual C# 創建類庫。 3.點擊確定后,進入代碼編輯界面。 4.根據書中代碼,寫入程序,并進行測試。 轉載于…

React-Native-lesson

React-Native-lesson 一、React-Native入門指南 lesson2: 認識代碼結構lesson4: 學會React-Native布局(一)lesson6: UI組件lesson8: 自己動手寫組件 https://github.com/vczero/toilet React Native完全開發的獨立App,支持ES6語法&#xff0c…

1、如何進行字符串常量中的字符定位_Java String:字符串常量池,我相信會有很多朋友不很理解這部分...

作為最基礎的引用數據類型,Java 設計者為 String 提供了字符串常量池以提高其性能,那么字符串常量池的具體原理是什么,我們帶著以下三個問題,去理解字符串常量池:字符串常量池的設計意圖是什么?字符串常量池…

Egret中使用P2物理引擎

游戲中的對象按照物理規律移動,體現重力、引力、反作用力、加速度等物體特性,實現自由落體、搖擺運動、拋物線運動,以及物理碰撞現象的模擬。用于模擬物理碰撞、物理運動的引擎稱為物理引擎。 來自瑞典斯德哥爾摩大學的Stefan Hedman基于Java…

react項目_如何從零開始創建React項目(三種方式)

在開發React項目前最關鍵的當然是項目的創建,現在的前端工程化使得前端項目的創建也變得越來越復雜,在這里介紹三種從零開始創建React項目的方式,分別是在瀏覽器中直接引入、使用官方腳手架create-react-app、使用Webpack創建。瀏覽器中通過標…

利用JSONP解決AJAX跨域問題的原理與jQuery解決方案

寫在前面 跨域的解決方案有多種,其中最常見的是使用同一服務器下的代理來獲取遠端數據,再通過ajax進行讀取,而在這期間經過了兩次請求過程,使得獲取數據的效率大大降低,這篇文章藍飛就為大家介紹一下解決跨域問題的一種…

江西理工大學南昌校區cool code競賽

這次比賽原本就是來打醬油的,想做個簽到題就走!一開始不知道1002是簽到題,一直死磕1001,WA了四發過了,回頭一看Rank,三十名,我靠!看了1001的AC率,在我AC之前只有一個人AC…

mysql 枚舉_詳解MySQL數據類型之枚舉類型ENUM的用法

本節主要內容:MySQL數據類型之枚舉類型ENUMMySQL數據庫提供針對字符串存儲的一種特殊數據類型:枚舉類型ENUM,這種數據類型可以給予我們更多提高性能、降低存儲容量和降低程序代碼理解的技巧,前面介紹了首先介紹了四種數據類型的特…

# 異運算_小學數學運算三要點:定律、法則與順序(解析)

很多孩子的數學不好,尤其是女孩子。家長往往認定為數學不好就是孩子不擅長,能力差。其實未必,有的孩子數學不好的原因并不在于智商,而是沒有理解到數學的方法與邏輯,比如小學的運算中,很多孩子并沒有了解到…

如何實現一個教師與學生教學輔助平臺?

在軟件工程的學習過程中,我們要完成一個團體項目,關于個人教學輔助系統,對于這個,還有太多要學。對于如何實現其中的功能,我們會利用到html,css等語言來編寫網頁前端,同樣也會用到數據庫的知識。…

證明創建runnable實例和普通類時間一樣長

import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;//證明創建runnable實例和普通類時間一樣長public class Test002 { private Concurre…

mysql數據庫維護_維護MySQL數據庫表

在本教程中,我們將向您介紹一些非常有用的語句,使您可以在MySQL中維護數據庫表。MySQL提供了幾個有用的語句,可以有效地維護數據庫表。 這些語句使您能夠分析,優化,檢查和修復數據庫表。分析表語句MySQL查詢優化器是My…

node-glob 正則表達式

https://github.com/isaacs/node-glob轉載于:https://www.cnblogs.com/chris-oil/p/6507368.html

機器學習筆記—再談廣義線性模型

前文從線性回歸和 Logistic 回歸引出廣義線性回歸的概念,很多人還是很困惑,不知道為什么突然來個廣義線性回歸,有什么用?只要知道連續值預測就用線性回歸、離散值預測就用 Logistic 回歸不就行了?還有一些概念之間的關…

python連接access數據庫odbc_對Python通過pypyodbc訪問Access數據庫的方法詳解

看書上通過ODBC訪問數據庫的案例,想實踐一下在Python 3.6.1中實現access2003數據庫的鏈接,但是在導入odbc模塊的時候出現了問題,后來查了一些資料就嘗試著使用pypyodbc,最后成功了。操作步驟:①安裝pypyodbc目前Python…

mysql異機備份

xx.xx..4.43----xx.xx..4.51 1、配置client通過密鑰來連接server 43機器上: /root/.ssh 目錄下執行 ssh-keygen -t rsa ls /root/.ssh會發現在/root/.ssh下生成一對密鑰id_dsa和id_dsa.pub,將生成的公鑰id_dsa.pub拷貝到server的/root/.ssh目錄下&#…

周末想找個地方敲代碼_觀看我們的代碼游戲,全周末直播

周末想找個地方敲代碼by freeCodeCamp通過freeCodeCamp 觀看我們的代碼游戲,全周末直播 (Watch us Code Games Live All Weekend) Note: this was originally published on our now-defunct blog on July 15, 2015.注意:該文章最初于2015年7月15日發布在…

5.7和5.6的mysql_mysql5.6和5.7的區別

展開全部MySQL 5.7 已經開發兩年了。相比 MySQL 5.6,有特別多的改進。團隊主要關注速度,性能據報告是比之前62616964757a686964616fe4b893e5b19e31333365643661版本提升了 2 至 3 倍。新特性列表,主要改進:提升 MySQL 安全性改進了…

01:數制轉換

01:數制轉換 查看提交統計提問總時間限制: 1000ms內存限制: 65536kB描述求任意兩個不同進制非負整數的轉換(2進制~16進制),所給整數在long所能表達的范圍之內。不同進制的表示符號為(0,1,...&am…

局域網只能看到一部分電腦_win10 網上鄰居看不到其它電腦、共享不了文件

最近電腦遇到了局域網文件共享的問題,Win 10 系統在網絡和共享中心里無法看到其他電腦,只能看到本機。確認共享已經打開后,通過查找最終解決。下面是解決流程。1.進入:控制面板 – 網絡和共享中心 – 更改高級共享設置&#xff0c…