當前位置:
首頁 > 知識 > Python3.x開發簡單爬蟲及案例學習

Python3.x開發簡單爬蟲及案例學習

什麼是爬蟲

一段自動抓取互聯網信息的程序,可以從一個URL出發,訪問它所關聯的URL,提取我們所需要的數據。也就是說爬蟲是自動訪問互聯網並提取數據的程序。

爬蟲的價值


將互聯網上的數據為我所用,開發出屬於自己的網站或APP

爬蟲框架

爬蟲調度端:用來啟動、執行、停止爬蟲,或者監視爬蟲中的運行情況

在爬蟲程序中有三個模塊URL管理器:對將要爬取的URL和已經爬取過的URL這兩個數據的管理

網頁下載器:將URL管理器里提供的一個URL對應的網頁下載下來,存儲為一個字元串,這個字元串會傳送給網頁解析器進行解析

網頁解析器:一方面會解析出有價值的數據,另一方面,由於每一個頁面都有很多指向其它頁面的網頁,這些URL被解析出來之後,可以補充進URL管理器

這三部門就組成了一個簡單的爬蟲架構,這個架構就能將互聯網中所有的網頁抓取下來


動態執行流程

URL管理器

防止重複抓取和循環抓取,最嚴重情況兩個URL相互指向就會形成死循環

三種實現方式

Python內存set集合:set集合支持去重的作用

Mysql:url(訪問路徑)is_crawled(是否訪問)

Redis:使用Redis性能最好,且Redis中也有set類型,可以去重。不懂得同學可以看下Redis的介紹

urllib模塊

本文使用urllib實現

urllib2是python自帶的模塊,不需要下載。

urllib2在python3.x中被改為urllib.request

〖★三種實現方式★〗

1

方式一

2

方式二

3

使用cookie

網頁解析器和BeautifulSoup第三方模塊

測試是否安裝bs4

方法介紹

實例測試

html採用官方案例

獲取所有的鏈接

爬蟲開發實例(目標爬蟲百度百科)

入口:http://baike.baidu.com/item/Python

分析URL格式:防止訪問無用路徑 http://baike.baidu.com/item/

數據:抓取百度百科相關Python詞條網頁的標題和簡介

通過審查元素得標題元素為 :class=」lemmaWgt-lemmaTitle-title」

簡介元素為:class=」lemma-summary」

頁面編碼:UTF-8

作為定向爬蟲網站要根據爬蟲的內容升級而升級如運行出錯可能為百度百科升級,此時則需要重新分析目標

創建spider_main.py

創建url_manager.py

創建html_downloader.py

創建html_parser.py

創建html_output.py

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 python 的精彩文章:

學習Python,沒有小姐姐怎麼可以?
AI大潮引發Python培訓火爆

TAG:python |