国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python:爬取網(wǎng)絡(luò)小說,看這一篇就夠了

這篇具有很好參考價(jià)值的文章主要介紹了python:爬取網(wǎng)絡(luò)小說,看這一篇就夠了。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

說明:

? ? ? ? 本教程僅供于學(xué)習(xí)研究使用,請勿用于其他用途。

軟件安裝:

官網(wǎng)下載visual studio?Visual Studio: 面向軟件開發(fā)人員和 Teams 的 IDE 和代碼編輯器 (microsoft.com)

python 爬小說,python,python,開發(fā)語言

點(diǎn)進(jìn)網(wǎng)頁后下拉找到個(gè)人免費(fèi)版本。點(diǎn)擊下載即可。

python 爬小說,python,python,開發(fā)語言

1:找到瀏覽器下載位置,2:選擇打開下載文件位置、3:選擇雙擊運(yùn)行安裝程序

python 爬小說,python,python,開發(fā)語言

點(diǎn)擊繼續(xù)

python 爬小說,python,python,開發(fā)語言

等待下載完成后,勾選對python 的開發(fā)。

python 爬小說,python,python,開發(fā)語言

最后等待安裝完畢即可。

新建工程:

一般安裝完成后桌面是沒有圖標(biāo)的的我們要去系統(tǒng)欄進(jìn)行搜索。

python 爬小說,python,python,開發(fā)語言

python 爬小說,python,python,開發(fā)語言

選擇創(chuàng)建新項(xiàng)目。

python 爬小說,python,python,開發(fā)語言

1、點(diǎn)擊下拉選項(xiàng),2、找到python 項(xiàng)目

python 爬小說,python,python,開發(fā)語言

1、選擇python應(yīng)用程序,2、點(diǎn)擊確定

python 爬小說,python,python,開發(fā)語言

1、程序名稱,2、程序存放位置,可自行修改,3、勾選,4、創(chuàng)建

python 爬小說,python,python,開發(fā)語言

創(chuàng)建后如以下界面:

python 爬小說,python,python,開發(fā)語言

輸入測試代碼:

print("hello world")

點(diǎn)擊啟動按鈕

python 爬小說,python,python,開發(fā)語言

查看運(yùn)行結(jié)果。

python 爬小說,python,python,開發(fā)語言

到此我們的新建工程就完畢。

導(dǎo)入python 包:

需要導(dǎo)入的第三方包有兩個(gè),是requests和BeautifulSoup,其中一個(gè)是用于網(wǎng)頁請求的,一個(gè)是網(wǎng)頁解析的。

import requests
from bs4 import BeautifulSoup

直接運(yùn)行會報(bào)以下錯(cuò)誤。

python 爬小說,python,python,開發(fā)語言錯(cuò)誤的含義是沒有找到對應(yīng)的模塊。我們要先下載相關(guān)的第三方包。

首先我們關(guān)閉調(diào)試模式后,點(diǎn)擊工具-》python-》python環(huán)境

python 爬小說,python,python,開發(fā)語言

1、右側(cè)輸入requests,2、點(diǎn)擊安裝運(yùn)行命令?pip install requests

python 爬小說,python,python,開發(fā)語言

如果彈出提升權(quán)限點(diǎn)擊立即提升即可

python 爬小說,python,python,開發(fā)語言

顯示此提升表明安裝第三方包成功了

python 爬小說,python,python,開發(fā)語言

同樣的步驟導(dǎo)入bs4

python 爬小說,python,python,開發(fā)語言

如果是其他編譯環(huán)境就就采用以下命令即可。

pip install requests
pip install bs4

?判斷爬取網(wǎng)頁的編碼格式:

定義一個(gè)字符串變量內(nèi)容為需要爬取的小說主頁。

# 小說的URL
url = 'https://www.nfxs.com/book/126295/'

字符串來源于百度搜索

python 爬小說,python,python,開發(fā)語言?其他小說的話需要更換這個(gè)即可。

首先發(fā)起一個(gè)請求,并通過BeautifulSoup解析出來。

# 請求的URL是'url',這里的'url'只是一個(gè)占位符,你需要把實(shí)際的URL替換進(jìn)去  
response = requests.get(url)  
# 設(shè)置響應(yīng)的編碼為'utf-8',這樣獲取到的文本內(nèi)容就會是'utf-8'編碼  
response.encoding = 'utf-8'  
  
# 導(dǎo)入BeautifulSoup庫,這個(gè)庫是Python中用來解析HTML或XML的庫  
# 用BeautifulSoup庫的'html.parser'解析器來解析從URL獲取到的HTML內(nèi)容  
soup = BeautifulSoup(response.text, 'html.parser')  
  
print(soup)

運(yùn)行結(jié)果如下這是編碼格式正確可以進(jìn)行下一步了。

python 爬小說,python,python,開發(fā)語言

文中沒有亂碼是一個(gè)正常的頁面返回。

下面是編碼格式錯(cuò)誤的,我們需要手動調(diào)整。

python 爬小說,python,python,開發(fā)語言

最常用的兩種格式。

response.encoding = 'utf-8'
或者
response.encoding = 'gb2312'

到這里我們的編碼格式就能確定下來了。

?獲取小說章節(jié)鏈接及標(biāo)題:

我們將執(zhí)行的結(jié)果網(wǎng)上拉就可看到每個(gè)章節(jié)的前面帶的有他的鏈接。

python 爬小說,python,python,開發(fā)語言

接下來我們要將其取出來,寫入以下代碼。第一次濾除其他數(shù)據(jù)

#找到HTML文檔中的所有<a>標(biāo)簽(即所有鏈接)
soup.links = soup.find_all('a')

#遍歷所有鏈接
# 獲取小說的章節(jié)鏈接
for a in soup.links:
    print(a)

加入以上代碼后輸出,我們發(fā)現(xiàn)還有一些其他數(shù)據(jù)

python 爬小說,python,python,開發(fā)語言

我們通過修改遍歷代碼將其他的濾除掉.

## 獲取小說的章節(jié)鏈接
for a in soup.links:
    if '.html' in str(a):
        print(a)

通過判斷其中是否包含'.html'字符,來將其他濾除掉。

我們再次運(yùn)行。

?python 爬小說,python,python,開發(fā)語言

我們發(fā)現(xiàn)其中還是有兩個(gè)我們不想要的數(shù)據(jù)。再次修改濾波代碼。?

濾除第一種的時(shí)候,我們只需要將章節(jié)這個(gè)也加入判斷即可,濾除第二種錯(cuò)誤數(shù)據(jù)我們就需要強(qiáng)行固定序列了,比如我們強(qiáng)行讓它從第一章開始。代碼如下:

# 獲取小說的章節(jié)鏈接
x=1
for a in soup.links:
    if '.html' in str(a) and "第"+str(x)+"章" in str(a):
        print(a)
        x=x+1

再次運(yùn)行查看結(jié)果。

python 爬小說,python,python,開發(fā)語言報(bào)錯(cuò)咯 ,因?yàn)槲覀冇昧酥形淖址?,這個(gè)是python 編碼文件問題。我們在第一行加一行代碼:

# coding: utf-8  

再將文件改成utf-8的編碼格式即可。

首先找到工具->自定義

python 爬小說,python,python,開發(fā)語言

命令-》文件-》添加命令

python 爬小說,python,python,開發(fā)語言

文件-》高級保存選項(xiàng)-》確定

python 爬小說,python,python,開發(fā)語言?關(guān)閉窗口:

python 爬小說,python,python,開發(fā)語言

?我們將文件保存為utf-8模式即可。

python 爬小說,python,python,開發(fā)語言

選擇編碼-》保存

python 爬小說,python,python,開發(fā)語言

再次運(yùn)行,我發(fā)現(xiàn)此時(shí)只有501章了,小說其實(shí)有1000多章呢

python 爬小說,python,python,開發(fā)語言

我們可以直接去章節(jié)目錄查看問題。原來是網(wǎng)站存在錯(cuò)別字。

python 爬小說,python,python,開發(fā)語言

我們只好再次修改我們將這個(gè)錯(cuò)誤也加入代碼中.

# 獲取小說的章節(jié)鏈接
x=1
for a in soup.links:
    if '.html' in str(a) and ("第"+str(x)+"章" in str(a) or "弟"+str(x)+"章" in str(a)):
        print(a)
        x=x+1

再次運(yùn)行代碼??梢园l(fā)現(xiàn)代碼到可以到1000多章了。

python 爬小說,python,python,開發(fā)語言

?首先將鏈接從標(biāo)簽a中取出來。

# 獲取小說的章節(jié)鏈接
x=1
for a in soup.links:
    if '.html' in str(a) and ("第"+str(x)+"章" in str(a) or "弟"+str(x)+"章" in str(a)):
        print(str(a['href']))
        x=x+1

運(yùn)行結(jié)果如下。

python 爬小說,python,python,開發(fā)語言

我會發(fā)現(xiàn)其中鏈接不全,我們直接通過這種形式肯定不行。我們查看網(wǎng)站網(wǎng)頁的命名格式。

python 爬小說,python,python,開發(fā)語言

我們每讀取一章就要如何通過這個(gè)網(wǎng)址來獲取,而不是上面那個(gè)地方的網(wǎng)頁。

我們需要將

/book/13713/18785770.html

轉(zhuǎn)化成下面這種模式?

https://www.biqubao2.com/book/13713/18785770.html

我們發(fā)現(xiàn)前面缺少的其實(shí)就是我們剛開始的鏈接,我們使用字符拼接即可。

修改后代碼如下所示。

# 獲取小說的章節(jié)鏈接
x=1
for a in soup.links:
    if '.html' in str(a) and ("第"+str(x)+"章" in str(a) or "弟"+str(x)+"章" in str(a)):
        tp=str(a['href'])
        print(url[:-12]+tp)
        x=x+1

運(yùn)行代碼結(jié)果:

python 爬小說,python,python,開發(fā)語言

最后修改代碼我們將鏈接和章節(jié)名稱保存起來。

# 獲取小說的章節(jié)鏈接
x=1
#鏈接
chapter_links=[]
#章節(jié)名稱
catalogue=[]

for a in soup.links:
    if '.html' in str(a) and ("第"+str(x)+"章" in str(a) or "弟"+str(x)+"章" in str(a)):
        tp=str(a['href'])
        chapter_links.append(url[:-12]+tp)
        catalogue.append(a.text)
        x=x+1
 
print(chapter_links)
print(catalogue)

運(yùn)行后發(fā)現(xiàn)鏈接和我們的標(biāo)題都被保存下來了。

python 爬小說,python,python,開發(fā)語言

獲取小說并保存:

寫入以下代碼

# 初始化一個(gè)計(jì)數(shù)器,用于跟蹤章節(jié)的序號  
i=0  
  
# 對章節(jié)鏈接進(jìn)行遍歷  
for link in chapter_links:  
  
    # 獲取每一章的內(nèi)容  
    chapter_response = requests.get(link)  
  
    # 設(shè)置響應(yīng)對象的編碼為utf-8,以正確處理獲取到的文本數(shù)據(jù)  
    chapter_response.encoding = 'utf-8'  
  
    # 使用BeautifulSoup庫解析獲取到的響應(yīng)文本,將其轉(zhuǎn)化為一個(gè)BeautifulSoup對象  
    # BeautifulSoup是一個(gè)用于解析HTML和XML文檔的Python庫  
    chapter_soup = BeautifulSoup(chapter_response.text, 'html.parser')  
  
    # 在BeautifulSoup對象中尋找id為"myDiv"的div標(biāo)簽  
    # 這通常用于定位網(wǎng)頁中的特定區(qū)域,以獲取其內(nèi)容  
    # 找到 id 為 "myDiv" 的 div 標(biāo)簽  
    div = chapter_soup.find('div', {'id': 'content'})  
  
    # 從找到的div標(biāo)簽中獲取文本內(nèi)容  
    chapter_text = div.get_text()  
  
    # 打開名為'novel.txt'的文件,以追加模式寫入數(shù)據(jù)  
    # 如果文件不存在,將創(chuàng)建一個(gè)新文件  
    # 將章節(jié)內(nèi)容寫入文件  
    with open('寒門極品公子.txt', 'a', encoding='utf-8') as f:  
  
        # 將catalogue[i]的內(nèi)容與一個(gè)換行符'\n'拼接,并寫入到文件中  
        # catalogue可能是一個(gè)列表或其他類型的可索引對象,它包含了各章節(jié)的標(biāo)題或其它標(biāo)識信息  
        f.write(catalogue[i] + '\n')  
  
        # 將獲取到的章節(jié)文本內(nèi)容與一個(gè)換行符'\n'拼接,并寫入到文件中  
        f.write(chapter_text + '\n')  
  
    # 打印出當(dāng)前處理的章節(jié)編號和狀態(tài)信息  
    print('第'+str(i)+'章下載完成')  

    time.sleep(5)  # 延時(shí)5秒 
# 當(dāng)所有章節(jié)都處理完畢后,打印出小說下載完成的信息  
print('小說下載完成。')

代碼的主要內(nèi)容就是通過單個(gè)章節(jié)的鏈接獲取到回復(fù),之后找到居中格式的div ,獲取其中的文本就是先說內(nèi)容?這個(gè)時(shí)候我們將其寫入到txt中,知道完成下載,其中延時(shí)是必須的,防止影響網(wǎng)站運(yùn)行,從而導(dǎo)致踩縫紉機(jī)的風(fēng)險(xiǎn)。以下是運(yùn)行結(jié)果。

python 爬小說,python,python,開發(fā)語言

最后等待下載完成即可.

最后貼一下完整源碼。

# coding: utf-8 
import time   
import requests
from bs4 import BeautifulSoup

url='https://www.biqubao2.com/book/13713/'

# 請求的URL是'url',這里的'url'只是一個(gè)占位符,你需要把實(shí)際的URL替換進(jìn)去  
response = requests.get(url)  
  
# 設(shè)置響應(yīng)的編碼為'utf-8',這樣獲取到的文本內(nèi)容就會是'utf-8'編碼  
response.encoding = 'utf-8'  
  
# 用BeautifulSoup庫的'html.parser'解析器來解析從URL獲取到的HTML內(nèi)容  
soup = BeautifulSoup(response.text, 'html.parser') 

#找到HTML文檔中的所有<a>標(biāo)簽(即所有鏈接)
soup.links = soup.find_all('a')

# 獲取小說的章節(jié)鏈接
x=1
#鏈接
chapter_links=[]
#章節(jié)名稱
catalogue=[]

for a in soup.links:
    if '.html' in str(a) and ("第"+str(x)+"章" in str(a) or "弟"+str(x)+"章" in str(a)):
        tp=str(a['href'])
        chapter_links.append(url[:-12]+tp)
        catalogue.append(a.text)
        x=x+1
 
i=0
for link in chapter_links:
    # 獲取每一章的內(nèi)容
    chapter_response = requests.get(link)
    chapter_response.encoding = 'utf-8'
    chapter_soup = BeautifulSoup(chapter_response.text, 'html.parser')
    # 找到 id 為 "myDiv" 的 div 標(biāo)簽  
    div = chapter_soup.find('div', {'id': 'content'}) 
    chapter_text = div.get_text()
    # 將章節(jié)內(nèi)容寫入文件
    with open('novel.txt', 'a', encoding='utf-8') as f:
        
        f.write(catalogue[i] + '\n')
        f.write(chapter_text + '\n')
        i=i+1
    print('第'+str(i)+'章下載完成')
    time.sleep(5)  # 延時(shí)5秒 
print('小說下載完成。')

好了,不多說了,我的小說下載好了,我看小說去了。?文章來源地址http://www.zghlxwxcb.cn/news/detail-764773.html

到了這里,關(guān)于python:爬取網(wǎng)絡(luò)小說,看這一篇就夠了的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于網(wǎng)絡(luò)爬蟲和SpringBoot框架的晉江文學(xué)小說小型網(wǎng)站項(xiàng)目

    基于網(wǎng)絡(luò)爬蟲和SpringBoot框架的晉江文學(xué)小說小型網(wǎng)站項(xiàng)目

    Scrapy是一個(gè)為了爬取網(wǎng)站數(shù)據(jù),提取結(jié)構(gòu)性數(shù)據(jù)而編寫的應(yīng)用框架,??梢詰?yīng)用在包括數(shù)據(jù)挖掘,信息處理或存儲歷史數(shù)據(jù)等一系列的程序中。項(xiàng)目中,主要采取Scrapy框架實(shí)現(xiàn)一個(gè)爬蟲,抓取晉江文學(xué)網(wǎng)站的熱門小說數(shù)據(jù)。其主要步驟分為四步: 第一步:新建項(xiàng)目——scrap

    2024年02月02日
    瀏覽(25)
  • 【Linux】在ubuntu18.04系統(tǒng)中配置網(wǎng)絡(luò)信息(超有用,完美解決,只看這一篇就行了)

    【Linux】在ubuntu18.04系統(tǒng)中配置網(wǎng)絡(luò)信息(超有用,完美解決,只看這一篇就行了)

    最近用centos搭建hadoop集群已經(jīng)熟練了,但是學(xué)習(xí)場景中更多的使用的是ubuntu環(huán)境,就安裝了ubuntu的環(huán)境進(jìn)行搭建,結(jié)果ubuntu在很多地方與centos操作有較大區(qū)別,首先網(wǎng)絡(luò)配置就讓我折騰了半天,現(xiàn)在我將我已成功配置好的經(jīng)驗(yàn)分享給大家 1.首先打開我們的VMware虛擬機(jī),左上角

    2024年02月13日
    瀏覽(30)
  • 【Python系列】Python教程合輯-史上最全最詳細(xì)-從入門到入土,看這一篇就夠了

    【Python系列】Python教程合輯-史上最全最詳細(xì)-從入門到入土,看這一篇就夠了

    目錄 Python合輯匯總列表 用Python自動辦公,做職場高手【完結(jié)】?? ? 玩轉(zhuǎn)Python3入門到精通視頻教程?? ? 數(shù)據(jù)分析資料包? 全民一起玩Python?? ? 千鋒教育Python700集零基礎(chǔ)入門到精通(爬蟲 辦公自動化 數(shù)據(jù)分析)?? ? 慕課網(wǎng)實(shí)戰(zhàn)課-暢銷3年的Python分布式爬蟲課程-原版提取??

    2024年02月22日
    瀏覽(32)
  • Python辦公自動化之Word文檔自動化:全網(wǎng)最全,看這一篇就夠了

    Python辦公自動化之Word文檔自動化:全網(wǎng)最全,看這一篇就夠了

    目錄 一、環(huán)境安裝 1、升級pip 2、python-docx 3、win32com 4、mailmerge 5、matplotlib 二、Python-docx 新建文檔 三、Python-docx 編輯已存在文檔 四、win32com 將 doc 轉(zhuǎn)為 docx 五、win32com 操作 word 1、打開新的word文檔并添加內(nèi)容 2、打開已存在word文檔并添加內(nèi)容 3、轉(zhuǎn)換word為pdf 六、Python-docx 操作

    2024年02月01日
    瀏覽(55)
  • 基于Java(SpringBoot框架)畢業(yè)設(shè)計(jì)作品成品(10)網(wǎng)絡(luò)網(wǎng)上web在線閱讀小說電子書系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    基于Java(SpringBoot框架)畢業(yè)設(shè)計(jì)作品成品(10)網(wǎng)絡(luò)網(wǎng)上web在線閱讀小說電子書系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

    博主介紹 :《Vue.js入門與商城開發(fā)實(shí)戰(zhàn)》《微信小程序商城開發(fā)》圖書作者,CSDN博客專家,在線教育專家,CSDN鉆石講師;專注大學(xué)生畢業(yè)設(shè)計(jì)教育和輔導(dǎo)。 所有項(xiàng)目都配有從入門到精通的基礎(chǔ)知識視頻課程,免費(fèi) 項(xiàng)目配有對應(yīng)開發(fā)文檔、開題報(bào)告、任務(wù)書、PPT、論文模版

    2024年02月07日
    瀏覽(25)
  • CSS基礎(chǔ)——看這一篇就夠了

    CSS基礎(chǔ)——看這一篇就夠了

    目錄 一、CSS簡介 1.CSS是什么? 2.CSS的作用 3.CSS的構(gòu)成 二、CSS選擇器 1.基礎(chǔ)選擇器 (1).標(biāo)簽選擇器 (2)類選擇器 (3)標(biāo)簽選擇器 (4) 通配符選擇器 2.復(fù)合選擇器 (1)后代選擇器(包含選擇器) (2)子選擇器 (3)并集選擇器 (4)偽類選擇器 ?三、基本屬性 1.字體屬性

    2024年02月09日
    瀏覽(98)
  • 精通線程池,看這一篇就夠了

    精通線程池,看這一篇就夠了

    當(dāng)我們運(yùn)用多線程技術(shù)處理任務(wù)時(shí),需要不斷通過new的方式創(chuàng)建線程,這樣頻繁創(chuàng)建和銷毀線程,會造成cpu消耗過多。那么有沒有什么辦法 避免頻繁創(chuàng)建線程 呢? 當(dāng)然有,和我們以前學(xué)習(xí)過多連接池技術(shù)類似,線程池通過提前創(chuàng)建好線程保存在線程池中, 在任務(wù)要執(zhí)行時(shí)取

    2023年04月17日
    瀏覽(97)
  • 還不會二分查找?看這一篇就夠了

    還不會二分查找?看這一篇就夠了

    二分查找分為整數(shù)二分和浮點(diǎn)數(shù)二分,一般所說的二分查找都是指整數(shù)二分。 滿足單調(diào)性的數(shù)組一定可以使用二分查找,但可以使用二分查找的數(shù)組不一定需要滿足單調(diào)性。 不妨假設(shè)我們找到了條件 C 1 C_1 C 1 ? ,它和它的 對立條件 C 2 C_2 C 2 ? 能夠?qū)?shù)組 a a a 一分為二,

    2024年01月19日
    瀏覽(27)
  • ElasticSearch常見用法,看這一篇就夠了

    ElasticSearch常見用法,看這一篇就夠了

    2024送書福利正式起航 關(guān)注「哪吒編程」,提升Java技能 文末送3本《一本書講透Elasticsearch:原理、進(jìn)階與工程實(shí)踐》 大家好,我是哪吒。 ElasticSearch是一款由Java開發(fā)的開源搜索引擎,它以其出色的實(shí)時(shí)搜索、穩(wěn)定可靠、快速安裝和方便使用的特性,在Java開發(fā)社區(qū)中贏得了廣

    2024年03月19日
    瀏覽(94)
  • 超圖(HyperGraph)學(xué)習(xí),看這一篇就夠了

    超圖(HyperGraph)學(xué)習(xí),看這一篇就夠了

    最近事多,好久沒更新了,隨便寫寫(Ctrl+V)點(diǎn) 一、超圖定義 通常圖論中的圖,一條edge只能連接2個(gè)vertex,在超圖中,不限量 如何理解呢,就用我正在做的KT問題來看:7道題目-7個(gè)頂點(diǎn);4種概念-4條超邊,其中第1,2,3題都是考察概念1的,則構(gòu)建一個(gè)包含了這仨的超邊,以此類

    2024年02月02日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包