溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python爬蟲的詳細解析

發(fā)布時間:2020-07-18 17:44:21 來源:億速云 閱讀:142 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要講解了python爬蟲的詳細解析,內(nèi)容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

首先爬蟲是什么?

網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動的抓取萬維網(wǎng)信息的程序或者腳本。

根據(jù)我的經(jīng)驗,要學習Python爬蟲,我們要學習的共有以下幾點:

  • Python基礎(chǔ)知識
  • Python中urllib和urllib2庫的用法
  • Python正則表達式
  • Python爬蟲框架Scrapy
  • Python爬蟲更高級的功能

1.Python基礎(chǔ)學習

首先,我們要用Python寫爬蟲,肯定要了解Python的基礎(chǔ)吧,萬丈高樓平地起,不能忘啦那地基,哈哈,那么我就分享一下自己曾經(jīng)看過的一些Python教程,小伙伴們可以作為參考。

1) Python學習網(wǎng)

Python學習網(wǎng)上有大量免費的Python入門教程,以便大家學習。不僅有視頻教程,還有相應(yīng)的問答版塊,幫你解決學習過程中的問題,效果還是蠻不錯的,內(nèi)容基本上都是最基礎(chǔ)的,入門開始的話,就這個吧

2) 廖雪峰Python教程

后來,我發(fā)現(xiàn)了廖老師的Python教程,講的那是非常通俗易懂哪,感覺也是非常不錯,大家如果想進一步了解Python就看一下這個吧。

3) 簡明Python教程

還有一個我看過的,簡明Python教程,感覺講的也不錯

學習網(wǎng)址:簡明Python教程(https://woodpecker.org.cn/abyteofpython_cn/chinese/pr01.html#s01)

4) 汪海的實驗室

這是我的本科實驗室學長,入門的時候參考的他的文章,自己重新做了總結(jié),后來這些系列文章又在他的基礎(chǔ)上增加了一些內(nèi)容。

學習網(wǎng)址:汪海的實驗室(https://blog.csdn.net/wxg694175346/category_1418998_1.html)

2.Python urllib和urllib2 庫的用法

urllib和urllib2庫是學習Python爬蟲最基本的庫,利用這個庫我們可以得到網(wǎng)頁的內(nèi)容,并對內(nèi)容用正則表達式提取分析,得到我們想要的結(jié)果。這個在學習過程中我會和大家分享的。

3.Python 正則表達式

Python正則表達式是一種用來匹配字符串的強有力的武器。它的設(shè)計思想是用一種描述性的語言來給字符串定義一個規(guī)則,凡是符合規(guī)則的字符串,我們就認為它“匹配”了,否則,該字符串就是不合法的。這個在后面的博文會分享的。

4.爬蟲框架Scrapy

如果你是一個Python高手,基本的爬蟲知識都已經(jīng)掌握了,那么就尋覓一下Python框架吧,我選擇的框架是Scrapy框架。這個框架有什么強大的功能呢?下面是它的官方介紹:

HTML, XML源數(shù)據(jù) 選擇及提取 的內(nèi)置支持
提供了一系列在spider之間共享的可復(fù)用的過濾器(即 Item Loaders),對智能處理爬取數(shù)據(jù)提供了內(nèi)置支持。
通過 feed導(dǎo)出 提供了多格式(JSON、CSV、XML),多存儲后端(FTP、S3、本地文件系統(tǒng))的內(nèi)置支持
提供了media pipeline,可以 自動下載 爬取到的數(shù)據(jù)中的圖片(或者其他資源)。
高擴展性。您可以通過使用 signals ,設(shè)計好的API(中間件, extensions, pipelines)來定制實現(xiàn)您的功能。
內(nèi)置的中間件及擴展為下列功能提供了支持:
cookies and session 處理
HTTP 壓縮
HTTP 認證
HTTP 緩存
user-agent模擬
robots.txt
爬取深度限制
針對非英語語系中不標準或者錯誤的編碼聲明, 提供了自動檢測以及健壯的編碼支持。
支持根據(jù)模板生成爬蟲。在加速爬蟲創(chuàng)建的同時,保持在大型項目中的代碼更為一致。詳細內(nèi)容請參閱 genspider 命令。
針對多爬蟲下性能評估、失敗檢測,提供了可擴展的 狀態(tài)收集工具 。
提供 交互式shell終端 , 為您測試XPath表達式,編寫和調(diào)試爬蟲提供了極大的方便
提供 System service, 簡化在生產(chǎn)環(huán)境的部署及運行
內(nèi)置 Web service, 使您可以監(jiān)視及控制您的機器
內(nèi)置 Telnet終端 ,通過在Scrapy進程中鉤入Python終端,使您可以查看并且調(diào)試爬蟲
Logging 為您在爬取過程中捕捉錯誤提供了方便
支持 Sitemaps 爬取
具有緩存的DNS解析器

等我們掌握了基礎(chǔ)的知識,再用這個 Scrapy 框架吧!

扯了這么多,好像沒多少有用的東西額,那就不扯啦!

知識點擴展:

爬蟲基本原理

爬蟲是 模擬用戶在瀏覽器或者App應(yīng)用上的操作,把操作的過程、實現(xiàn)自動化的程序

當我們在瀏覽器中輸入一個url后回車,后臺會發(fā)生什么?比如說你輸入https://www.baidu.com

簡單來說這段過程發(fā)生了以下四個步驟:

  1. 查找域名對應(yīng)的IP地址。
  2. 瀏覽器首先訪問的是DNS(Domain Name System,域名系統(tǒng)),dns的主要工作就是把域名轉(zhuǎn)換成相應(yīng)的IP地址向IP對應(yīng)的服務(wù)器發(fā)送請求。
  3. 服務(wù)器響應(yīng)請求,發(fā)回網(wǎng)頁內(nèi)容。
  4. 瀏覽器顯示網(wǎng)頁內(nèi)容。

網(wǎng)絡(luò)爬蟲要做的,簡單來說,就是實現(xiàn)瀏覽器的功能。通過指定url,直接返回給用戶所需要的數(shù)據(jù), 而不需要一步步人工去操縱瀏覽器獲取。

看完上述內(nèi)容,是不是對python爬蟲的詳細解析有進一步的了解,如果還想學習更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI