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,沒有小姐姐怎麼可以?
※AI大潮引發Python培訓火爆
TAG:python |