Python爬虫介绍及实战入门
一、什么是爬蟲
爬蟲:一段自動抓取互聯網信息的程序,從互聯網上抓取對于我們有價值的信息。
二、Python爬蟲架構
Python 爬蟲架構主要由五個部分組成,分別是調度器、URL管理器、網頁下載器、網頁解析器、應用程序(爬取的有價值數據)。
1. 調度器:相當于一臺電腦的CPU,主要負責調度URL管理器、下載器、解析器之間的協調工作。
2. URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重復抓取URL和循環抓取URL,實現URL管理器主要用三種方式,通過內存、數據庫、緩存數據庫來實現。
3. 網頁下載器:通過傳入一個URL地址來下載網頁,將網頁轉換成一個字符串,網頁下載器有urllib2(Python官方基礎模塊)包括需要登錄、代理、和cookie,requests(第三方包)
4. 網頁解析器:將一個網頁字符串進行解析,可以按照我們的要求來提取出我們有用的信息,也可以根據DOM樹的解析方式來解析。網頁解析器有正則表達式(直觀,將網頁轉成字符串通過模糊匹配的方式來提取有價值的信息,當文檔比較復雜的時候,該方法提取數據的時候就會非常的困難)、html.parser(Python自帶的)、beautifulsoup(第三方插件,可以使用Python自帶的html.parser進行解析,也可以使用lxml進行解析,相對于其他幾種來說要強大一些)、lxml(第三方插件,可以解析 xml 和 HTML),html.parser 和 beautifulsoup 以及 lxml 都是以 DOM 樹的方式進行解析的。
5. 應用程序:就是從網頁中提取的有用數據組成的一個應用。
下圖為爬蟲框架工作流程:
三、實戰爬取小說
?1. 爬取某小說中其中一章內容:
輸出結果中存在亂碼。
?解析網頁中部分內容,在網頁中右鍵,點擊檢查。
?我們要輸出上圖中選中行,其標簽為h1,預輸出其內容,我們需安裝解析包parsel。
?Pycharm中導入parsel包,進行解析并輸出h1標簽內容。
此時我們所需內容僅為文本內容,不需兩邊h1標簽。(h1為標簽選擇器)?
?得到無標簽文本內容,下面我們需要爬取小說內容。(content為id選擇器)
?輸出結果為列表格式,我們需將其合并為字符串格式。
?第二種方法,使用for循環打印文本。
?如上仍為逐行打印其文本內容,我們最終是要收集其內容成為文檔,所以我們進行文本內容收集,使用text進行收集。
保存文本數據,輸出文本文檔。
?2.爬取整本小說,多章節,首先將上述代碼封裝,以便后續調用,將其封裝為函數對象:download_one_chapter,刪除代碼中部分print。
?調用函數download_one_chapter,輸入小說網址即可下載對應文本內容。
?此時為逐章下載,我們要實現自動下載整本小說全部章節,首先我們要獲取所有章節的網址。
?爬取整本小說并輸出:
?若將小說內容放在同一文件中,將下述代碼進行修改:
修改前:
修改后:
?整本小說文本內容則全部保存在同一文檔中
將代碼封裝,定義函數:download_one_book,導入parse,進行網址補全。
我們便可直接調用函數進行整本小說下載。
總結
以上是生活随笔為你收集整理的Python爬虫介绍及实战入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python10分钟入门
- 下一篇: python爬虫教程(一)