點擊上方“Python爬蟲與數據挖掘”,進行關注
回覆“書籍”即可獲贈Python從入門到進階共10本電子書
今
日
雞
湯
一腔熱血勤珍重,灑去猶能化碧濤。
/1 前言/
隨着網絡的時代的發展,人們很少去安靜的去看一本書。而是選擇看網絡小說,可是網絡小說有些要錢才能看。
無限小說網
https://www.555x.org/
裏邊的內容是完全免費的,提供了各種種類的小說。滿足用戶的需要。可一頁一頁看小說太麻煩,直接下載多方便。
今天教大家爬取無限小說網,把小說的下載鏈接通過網絡請求直接下載。
/2 項目目標/
獲取對應小說的下載鏈接,點擊下載鏈接網址,下載對應的txt文件。
/3 項目準備/
軟件:PyCharm
需要的庫:requests、lxml、fake_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庫~~