手把手教你使用Python網絡爬蟲獲取小說

點擊上方“Python爬蟲與數據挖掘”,進行關注

回覆“書籍”即可獲贈Python從入門到進階共10本電子書

一腔熱血勤珍重,灑去猶能化碧濤。

/1 前言/

    隨着網絡的時代的發展,人們很少去安靜的去看一本書。而是選擇看網絡小說,可是網絡小說有些要錢才能看。

無限小說網

https://www.555x.org/

    裏邊的內容是完全免費的,提供了各種種類的小說。滿足用戶的需要。可一頁一頁看小說太麻煩,直接下載多方便。

    今天教大家爬取無限小說網,把小說的下載鏈接通過網絡請求直接下載。

/2 項目目標/

    獲取對應小說的下載鏈接,點擊下載鏈接網址,下載對應的txt文件。

/3 項目準備/

軟件:PyCharm

需要的庫:requestslxmlfake_useragent

網站如下:

https://www.555x.org/html/wuxiaxianxia/list_29_{}.html

點擊下一頁時,list_29_{}每增加一頁自增加1,用{}代替變換的變量,再用for循環遍歷這網址,實現多個網址請求。

/4 項目實現/

1、定義一個class類繼承object,定義init方法繼承self,主函數main繼承self。導入需要的庫和網址,代碼如下所示。

import requests
from lxml import etree
from fake_useragent import UserAgent
import time


class  xiaoshuo(object):
    def __init__(self):
      self.url = "https://www.xiachufang.com/explore/?page={}"


    def main(self):
        pass


if __name__ == '__main__':
    imageSpider =  xiaoshuo()
    imageSpider.main()

2、隨機產生UserAgent。

for i in range(1, 50):
    self.headers = {
        'User-Agent': ua.random,
    }

3、發送請求,獲取響應, 頁面回調,方便下次請求。

def get_page(self, url):
    res = requests.get(url=url, headers=self.headers)
    html = res.content.decode("utf-8")
    return html

4、xpath解析一級頁面數據,獲取頁面信息。

1)f12運行瀏覽器,右鍵檢查。找到對應二級頁面的地址。

2)二級頁面,右鍵檢查。點擊下載按鈕,找到對應三級頁面的地址。


5、三級頁面,先找到對應的父節點,再for循環遍歷進行爬取。

for rd in three:
    b = rd.xpath('..//div[@class="shutou"]//b/text()')[0].strip()
    tress = rd.xpath('..//div[@class="shuji"]//ul/li/a/@href')[0].strip()
    # print(tress)


6、定義read保存對應的小說名字,下載鏈接。

read = '''《%s》 下 載 鏈 接 : %s ''' % (b, tress)
print(read)


7、調用方法,實現功能。

html = self.get_page(url)
self.parse_page(html)

/5 效果展示/

1、點擊綠色小三角運行輸入起始頁,終止頁。

2、運行程序後,結果顯示在控制檯,如下圖所示。

3、點擊藍色下載鏈接, 網絡下載

4、雙擊小說文件,內容如下圖所示。

/6 小結/

1、不建議抓取太多數據,容易對服務器造成負載,淺嘗輒止即可。
2、本文基於Python網絡爬蟲,利用爬蟲庫,實現爬取小說下載鏈接,網絡請求直接下載。
3、實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,纔可以理解的更加深刻。
4、希望通過這個項目,能夠幫助一些上班族,在空閒時能夠直接通過網絡去獲取自己想要的小說 。
5、懶人是科技進步的動力。

6、如果需要本文源碼的話,請在公衆號後臺回覆“小說”兩個字進行獲取,覺得不錯,記得給個star噢。

------------------- End -------------------

往期精彩文章推薦:

歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支持

想加入Python學習羣請在後臺回覆【入羣

萬水千山總是情,點個【在看】行不行

/今日留言主題/

隨便說一兩個您使用過的Python庫~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章