怎樣利用Python爬取小說,這個小實例告訴你

怎樣利用Python爬取小說,這個小實例告訴你

今天主要分享如何抓取網頁信息,並生成txt文件內容!

Python抓取網頁技能——Python抓取網頁就是我們常看見的網絡爬蟲,我們今天所要用到的就是我們Python中自帶的模塊,用這些模塊將網頁內容爬取下來,並生成一個txt文件。

(一)實例思路:

我們所需要用到的模塊:

urllib2—urllib2是Python的一個獲取URLs(Uniform Resource Locators)的組件。他以urlopen函數的形式提供了一個非常簡單的接口,這是具有利用不同協議獲取URLs的能力,他同樣提供了一個比較複雜的接口來處理一般情況,例如:基礎驗證,cookies,代理和其他。

怎樣利用Python爬取小說,這個小實例告訴你

re—Python的re模塊就是我們開始想知道的大名鼎鼎的正則表達式,正則表達式(可以稱為REs,regex,regex pattens)是一個小巧的,高度專業化的編程語言,它內嵌於Python開發語言中,可通過re模塊使用。正則表達式的pattern可以被編譯成一系列的字節碼,然後用C編寫的引擎執行。

怎樣利用Python爬取小說,這個小實例告訴你

怎樣利用Python爬取小說,這個小實例告訴你

re—正則表達式我們本節就不去重點講了,基礎同學們可以去看看正則表達式的詳細內容:http://www.runoob.com/python/python-reg-expressions.html。在我的博客中有詳細的正則表達式(字符)詳解!

那麼接下來我們開始我們的小實例——爬取百度貼吧小說!

首先我們要明確一下我們項目的思路:

# -*- coding: utf-8 -*-

#模塊:urllib2, re。

#正則表達式:------想要的內容 findall(正則表達式,源碼)

# 2.解析超鏈接

# 3.獲取標題

# 4.獲取內容

# 5.發送命令,調用主函數

我們在進行項目時要將整體突出程序化,那麼我們開始第一步的實施調取Python中自帶的模塊:

怎樣利用Python爬取小說,這個小實例告訴你

將我們所需的模塊插入後,我們開始項目的實施:

怎樣利用Python爬取小說,這個小實例告訴你

上述代碼是我們要獲取的網頁源碼信息,因為我們需要多方面的爬取我們想要的內容,所以我們創建一個類來實現其中所有函數的功能。

怎樣利用Python爬取小說,這個小實例告訴你

baseUrl就是我們想要獲取的網址!

怎樣利用Python爬取小說,這個小實例告訴你

網址獲取到了之後,我們要定義一個函數,來獲取我們想要獲取的網頁信息,在函數中我們定義了兩個變量,這兩個變量是我們正則匹配時要需要用到的!

我們在其中所用到的:

怎樣利用Python爬取小說,這個小實例告訴你

這樣的語句就是判斷我們的程序有沒有錯誤,看我們是否獲取到我們想要的信息,如果沒有獲取到就給編譯器返回一個e值!

接下來我們要使用我們的正則表達式來獲取其中我們想要的內容了!

怎樣利用Python爬取小說,這個小實例告訴你

這一段定義的函數是將我們所獲取到的網頁信息,匹配到我們想要的位置,然後截取下來!並且將網頁匹配的信息生成一個text1.txt的文本文件,‘w’就是寫入信息!

怎樣利用Python爬取小說,這個小實例告訴你

這裡我們就用到了re模塊中的包含一個重要函數是compile(pattern [, flags]) ,該函數根據包含的正則表達式的字符串創建模式對象

參數描述:

pattern匹配的正則表達式string要匹配的字符串。

flags標誌位,用於控制正則表達式的匹配方式,如:是否區分大小寫,多行匹配等等。

怎樣利用Python爬取小說,這個小實例告訴你

接下來我們再看另一個re模塊中的函數python 正則表達式 re findall 方法能夠以列表的形式返回能匹配的子串。

re.findall(pattern, string[, flags]):

怎樣利用Python爬取小說,這個小實例告訴你

我們來看一下這個函數的實例:

怎樣利用Python爬取小說,這個小實例告訴你

將我們我所要查詢到的數字以列表的形式輸出出來!

怎樣利用Python爬取小說,這個小實例告訴你

在這段代碼中,我們用到了Python文件寫入,這個地方就是生成我們txt文本文件的地方,同學門可以找找詳細的資料來研究一下,這裡是對於想保存長期看的同學有很大的幫助哦!在這裡我就不詳細講解了!

我們繼續我們的項目:

怎樣利用Python爬取小說,這個小實例告訴你

此處的代碼就是我們要完成我們真正所需要的內容了,這裡是完整的將我們所需要的小說爬取到手的,這裡面用的正則匹配就是我們的貪婪匹配模式了!

怎樣利用Python爬取小說,這個小實例告訴你

那麼這一部分還是我們在上一匹配到的內容中,將class標籤中的全部文字內容提取出來,但是其中我們會看到包含了很多img http等很多小標籤,所以我們還需要將這些內容利用正則匹配中的sub函數將他們裝換為空“ ”!

怎樣利用Python爬取小說,這個小實例告訴你

這一串代碼就是我們想要把其中像re.compile('|')這樣的內容獲取到,然後再利用我們的sub函數將這些獲取到的內容裝換為“ ”空白!然後在輸出到 i 這個列表中!最後將 i 輸出!

我們在結尾處需要做一個程序運行無誤的判斷,那麼我們就需要用到在編譯器中給我們返回我們程序運行的開始!文件的生成結果:

怎樣利用Python爬取小說,這個小實例告訴你

在這裡我們要調用我們所創建的類,在這一個try中我們看到了一個range的函數,這個函數就是如果你需要一個數值序列,使用內建函數range() 會很方便,它產生等差級數序列。利用這個函數的意思就是我們要獲取小說的全部內容!最後我們生成一個text1.txt的文件你就可以打開查看你想看的小說了哦!

今天的分享就到這裡了,喜歡這篇文章的話記得轉發+評論哦!

最重要的來了~~私信回覆“01”可以獲得更多免費爬蟲資料哦,而且是視頻教程哦!


分享到:


相關文章: