婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python 爬取國內小說網站

python 爬取國內小說網站

熱門標簽:地圖標注自己和別人標注區別 孝感營銷電話機器人效果怎么樣 ai電銷機器人的優勢 商家地圖標注海報 海外網吧地圖標注注冊 騰訊地圖標注沒法顯示 打電話機器人營銷 南陽打電話機器人 聊城語音外呼系統

原理先行

作為一個資深的小說愛好者,國內很多小說網站如出一轍,什么 🖊*閣啊等等,大都是 get 請求返回 html 內容,而且會有標志性的dl>dd>等標簽。
所以大概的原理,就是先 get 請求這個網站,然后對獲取的內容進行清洗,寫進文本里面,變成一個 txt,導入手機,方便看小說。

實踐篇

之前踩過一個坑,一開始我看了幾頁小說,大概小說的內容網站是https://www.xxx.com/小說編號/章節編號.html,一開始看前幾章,我發現章節編號是連續的, 于是我一開始想的就是記住起始章節編號,然后在循環的時候章節編號自增就行,后面發現草率了,可能看個 100 章之后,章節列表會出現斷層現象,這個具體為啥 還真不知道,按理說小說編號固定,可以算是一個數據表,那里面的章節編號不就是一個自增 id 就完了嘛?有懂王可以科普一下!
所以這里要先獲取小說的目錄列表,并把目錄列表洗成一個數組方便我們后期查找!getList.py文件:

定義一個請求書簽的方法

# 請求書簽地址
def req():
    url = "https://www.24kwx.com/book/4/4020/"
    strHtml = requests.get(url)
    return strHtml.text

將獲取到的內容提取出(id:唯一值/或第 X 章小說)(name:小說的章節名稱)(key:小說的章節 id)

# 定義一個章節對象
class Xs(object):
    def __init__(self,id,key,name):
        self._id = id
        self._key = key
        self._name = name

    @property
    def id(self):
        self._id
    @property
    def key(self):
        self._key
    @property
    def name(self):
        self._name

    def getString(self):
        return 'id:%s,name:%s,key:%s' %(self._id,self._name,self._key)

# 轉換成書列表
def tranceList():
    key = 0
    name = ""
    xsList = []
    idrule = r'/4020/(.+?).html'
    keyrule = r'第(.+?)章'
    html = req()
    html = re.split("/dt>",html)[2]
    html = re.split("/dl>",html)[0]
    htmlList = re.split("/dd>",html)
    for i in htmlList:
        i = i.strip()
        if(i):
            # 獲取id
            id = re.findall(idrule,i)[0]
            lsKeyList = re.findall(keyrule,i)
            # 如果有章節
            if len(lsKeyList) > 0 :
                key = int(lsKeyList[0])
                lsname = re.findall(r'章(.+?)/a>',i)
            else :
                key = key + 1
            # 獲取名字
            # lsname = re.findall(r'.html">(.+?)/a>',i)[0]
            # name = re.sub(',',' ', lsname, flags=re.IGNORECASE)
            name = re.findall(r'.html">(.+?)/a>',i)[0]
            xsobj = Xs(id,key,name)
            xsList.append(xsobj.getString())
    writeList(xsList)

注意一下我:如果你從別的語言轉 py,第一次寫object對象可能會比較懵,沒錯因為他的object是一個class,這里我創建的對象就是{id,key,name}但是你寫入 txt 的時候還是要getString,所以后面想想我直接寫個{id:xxx,name:xxx,key:xxx}的字符串不就完了,還弄啥class,后面還是想想給兄弟盟留點看點,就留著了

最后寫入 txt 文件

# 寫入到文本
def writeList(list):
    f = open("xsList.txt",'w',encoding='utf-8')
    # 這里不能寫list,要先轉字符串 TypeError: write() argument must be str, not list
    f.write('\n'.join(list))
    print('寫入成功')

# 大概寫完的txt是這樣的
id:3798160,name:第1章 孫子,我是你爺爺,key:1
id:3798161,name:第2章 孫子,等等我!,key:2
id:3798162,name:第3章 天上掉下個親爺爺,key:3
id:3798163,name:第4章 超級大客戶,key:4
id:3798164,name:第5章 一張退婚證明,key:5

ok ! Last one
這里已經寫好了小說的目錄,那我們就要讀取小說的內容,同理

先寫個請求

# 請求內容地址
def req(id):
    url = "https://www.24kwx.com/book/4/4020/"+id+".html"
    strHtml = requests.get(url)
    return strHtml.text

讀取我們剛剛保存的目錄

def getList():
    f = open("xsList.txt",'r', encoding='utf-8')
    # 這里按行讀取,讀取完后line是個數組
    line = f.readlines()
    f.close()
    return line

定義好一個清洗數據的規則

contextRule = r'div class="content">(.+?)script>downByJs();/script>'
titleRule = r'h1>(.+?)/h1>'
def getcontext(objstr):
    xsobj = re.split(",",objstr)
    id = re.split("id:",xsobj[0])[1]
    name = re.split("name:",xsobj[1])[1]
    html = req(id)
    lstitle = re.findall(titleRule,html)
    title = lstitle[0] if len(lstitle) > 0 else name
    context = re.split('div id="content" class="showtxt">',html)[1]
    context = re.split('/div>',context)[0]
    context = re.sub('nbsp;|\r|\n','',context)
    textList = re.split('br />',context)
    textList.insert(0,title)
    for item in textList :
        writeTxt(item)
    print('%s--寫入成功'%(title))

再寫入文件

def writeTxt(txt):
    if txt :
        f = open("nr.txt",'a',encoding="utf-8")
        f.write(txt+'\n')

最后當然是串聯起來啦

def getTxt():
    # 默認參數配置
    startNum = 1261 # 起始章節
    endNum = 1300 # 結束章節
    # 開始主程序
    f = open("nr.txt",'w',encoding='utf-8')
    f.write("")
    if endNum  startNum:
        print('結束條數必須大于開始條數')
        return
    allList = getList()
    needList = allList[startNum-1:endNum]
    for item in needList:
        getcontext(item)
        time.sleep(0.2)
    print("全部爬取完成")

完整代碼

getList.py

import requests
import re

# 請求書簽地址
def req():
    url = "https://www.24kwx.com/book/4/4020/"
    strHtml = requests.get(url)
    return strHtml.text

# 定義一個章節對象
class Xs(object):
    def __init__(self,id,key,name):
        self._id = id
        self._key = key
        self._name = name

    @property
    def id(self):
        self._id
    @property
    def key(self):
        self._key
    @property
    def name(self):
        self._name

    def getString(self):
        return 'id:%s,name:%s,key:%s' %(self._id,self._name,self._key)

# 轉換成書列表
def tranceList():
    key = 0
    name = ""
    xsList = []
    idrule = r'/4020/(.+?).html'
    keyrule = r'第(.+?)章'
    html = req()
    html = re.split("/dt>",html)[2]
    html = re.split("/dl>",html)[0]
    htmlList = re.split("/dd>",html)
    for i in htmlList:
        i = i.strip()
        if(i):
            # 獲取id
            id = re.findall(idrule,i)[0]
            lsKeyList = re.findall(keyrule,i)
            # 如果有章節
            if len(lsKeyList) > 0 :
                key = int(lsKeyList[0])
                lsname = re.findall(r'章(.+?)/a>',i)
            else :
                key = key + 1
            # 獲取名字
            # lsname = re.findall(r'.html">(.+?)/a>',i)[0]
            # name = re.sub(',',' ', lsname, flags=re.IGNORECASE)
            name = re.findall(r'.html">(.+?)/a>',i)[0]
            xsobj = Xs(id,key,name)
            xsList.append(xsobj.getString())
    writeList(xsList)

# 寫入到文本
def writeList(list):
    f = open("xsList.txt",'w',encoding='utf-8')
    # 這里不能寫list,要先轉字符串 TypeError: write() argument must be str, not list
    f.write('\n'.join(list))
    print('寫入成功')


def main():
    tranceList()

if __name__ == '__main__':
    main() 

writeTxt.py

import requests
import re
import time


# 請求內容地址
def req(id):
    url = "https://www.24kwx.com/book/4/4020/"+id+".html"
    strHtml = requests.get(url)
    return strHtml.text

def getList():
    f = open("xsList.txt",'r', encoding='utf-8')
    # 這里按行讀取
    line = f.readlines()
    f.close()
    return line

contextRule = r'div class="content">(.+?)script>downByJs();/script>'
titleRule = r'h1>(.+?)/h1>'
def getcontext(objstr):
    xsobj = re.split(",",objstr)
    id = re.split("id:",xsobj[0])[1]
    name = re.split("name:",xsobj[1])[1]
    html = req(id)
    lstitle = re.findall(titleRule,html)
    title = lstitle[0] if len(lstitle) > 0 else name
    context = re.split('div id="content" class="showtxt">',html)[1]
    context = re.split('/div>',context)[0]
    context = re.sub('nbsp;|\r|\n','',context)
    textList = re.split('br />',context)
    textList.insert(0,title)
    for item in textList :
        writeTxt(item)
    print('%s--寫入成功'%(title))

def writeTxt(txt):
    if txt :
        f = open("nr.txt",'a',encoding="utf-8")
        f.write(txt+'\n')

def getTxt():
    # 默認參數配置
    startNum = 1261 # 起始章節
    endNum = 1300 # 結束章節
    # 開始主程序
    f = open("nr.txt",'w',encoding='utf-8')
    f.write("")
    if endNum  startNum:
        print('結束條數必須大于開始條數')
        return
    allList = getList()
    needList = allList[startNum-1:endNum]
    for item in needList:
        getcontext(item)
        time.sleep(0.2)
    print("全部爬取完成")

    
def main():
    getTxt()

if __name__ == "__main__":
    main()

以上就是python 爬取國內小說網站的詳細內容,更多關于python 爬取小說網站的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Python爬蟲入門教程02之筆趣閣小說爬取
  • python 爬取小說并下載的示例
  • python爬取”頂點小說網“《純陽劍尊》的示例代碼
  • Python爬取365好書中小說代碼實例
  • Python實現的爬取小說爬蟲功能示例
  • Python scrapy爬取起點中文網小說榜單
  • python爬蟲之爬取筆趣閣小說升級版

標簽:楊凌 揚州 迪慶 牡丹江 南寧 聊城 撫州 六盤水

巨人網絡通訊聲明:本文標題《python 爬取國內小說網站》,本文關鍵詞  python,爬取,國內,小說,網站,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python 爬取國內小說網站》相關的同類信息!
  • 本頁收集關于python 爬取國內小說網站的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产xxx精品视频大全| 偷偷要91色婷婷| 久久久精品国产免大香伊| 日韩欧美另类在线| 日韩欧美色综合网站| wwwwww.欧美系列| 欧美激情一区二区三区四区| 综合电影一区二区三区| 亚洲精品国产高清久久伦理二区 | 日韩一区欧美二区| 蜜臀av在线播放一区二区三区| 久久丁香综合五月国产三级网站| 久久机这里只有精品| 大白屁股一区二区视频| 色综合天天综合网天天狠天天| 欧美午夜一区二区三区免费大片| 日韩欧美国产一区在线观看| 久久影院电视剧免费观看| 国产精品你懂的| 亚洲动漫第一页| 国产一区福利在线| 色狠狠桃花综合| 2023国产精品自拍| 一区二区三区欧美久久| 国内欧美视频一区二区| 色偷偷成人一区二区三区91| 日韩精品一区二区三区三区免费| 国产精品久久久久久久久快鸭 | 国产乱色国产精品免费视频| 成人av电影在线观看| 在线不卡免费欧美| 中文久久乱码一区二区| 日韩国产欧美三级| 91在线你懂得| 国产亚洲自拍一区| 图片区日韩欧美亚洲| 福利91精品一区二区三区| 欧美美女激情18p| 日韩毛片一二三区| 国产最新精品免费| 欧美一区二区三区在线观看视频 | 欧美日韩久久一区| 国产精品久久久久精k8 | 欧美专区日韩专区| 欧美国产成人在线| 韩国成人在线视频| 欧美一二三区精品| 亚洲午夜精品一区二区三区他趣| 国产精品18久久久久久久久| 欧美一级久久久| 亚洲高清不卡在线观看| 91免费国产在线| 中文字幕一区二区日韩精品绯色| 激情综合网av| 日韩欧美色综合| 免费不卡在线视频| 欧美日本不卡视频| 亚洲国产另类av| 色先锋资源久久综合| 亚洲欧洲一区二区在线播放| 国产高清亚洲一区| 精品久久久久久久久久久久久久久| 午夜私人影院久久久久| 欧美自拍偷拍午夜视频| 国产精品久久午夜夜伦鲁鲁| 国产成人自拍网| 国产欧美一区二区精品性色 | 中文字幕av一区二区三区高| 国产一区在线精品| 久久婷婷一区二区三区| 精品一区二区久久久| 精品国产一区二区三区久久久蜜月| 免费不卡在线视频| 日韩欧美一级二级| 毛片基地黄久久久久久天堂| 日韩亚洲欧美成人一区| 久久精品国产亚洲aⅴ | 99国产精品久久久久| 国产精品私人影院| 91婷婷韩国欧美一区二区| 亚洲美女屁股眼交| 日本韩国一区二区三区视频| 亚洲一级二级三级在线免费观看| 欧美日韩在线播| 精品一区二区三区不卡 | 男男成人高潮片免费网站| 欧美日韩小视频| 久久精品国产色蜜蜜麻豆| 精品成人佐山爱一区二区| 国产**成人网毛片九色| 欧美高清在线精品一区| 色狠狠综合天天综合综合| 蜜桃传媒麻豆第一区在线观看| 精品久久久久99| 99精品视频在线观看免费| 亚洲成av人综合在线观看| 日韩午夜三级在线| 成人激情免费网站| 日本不卡不码高清免费观看| 国产天堂亚洲国产碰碰| 在线视频一区二区三| 国产综合色在线视频区| 亚洲一区在线观看免费观看电影高清| 日韩午夜电影av| av资源网一区| 美女免费视频一区| 亚洲日本在线观看| 精品人在线二区三区| 色综合天天综合给合国产| 日韩中文欧美在线| 国产精品剧情在线亚洲| 欧美一级一级性生活免费录像| 国产成人一区二区精品非洲| 五月天视频一区| 亚洲欧洲精品成人久久奇米网| 日韩欧美在线观看一区二区三区| 91在线视频播放地址| 国产在线播放一区| 亚洲一区二区在线播放相泽| 国产欧美一区二区三区网站| 91精品福利在线一区二区三区 | 91精品国产综合久久久久久久久久| 国产91精品露脸国语对白| 五月激情丁香一区二区三区| 亚洲精品老司机| 中文字幕中文字幕一区二区| 国产午夜精品美女毛片视频| 日韩一级二级三级精品视频| 欧美系列日韩一区| 99免费精品视频| 粉嫩高潮美女一区二区三区| 久久99精品网久久| 强制捆绑调教一区二区| 一区二区三区免费网站| 中文字幕一区日韩精品欧美| 久久精品水蜜桃av综合天堂| 日韩精品中文字幕一区| 在线综合视频播放| 3d成人动漫网站| 欧美一区二区在线观看| 欧美日韩视频一区二区| 欧美午夜在线观看| 欧美日韩国产高清一区二区三区| 91九色最新地址| 欧美在线观看一区| 欧美日韩一二区| 7777精品伊人久久久大香线蕉的 | 久久久精品一品道一区| 精品国产伦一区二区三区观看方式| 欧美一级艳片视频免费观看| 精品国产污网站| 久久久久亚洲综合| 欧美国产精品久久| 亚洲视频一区二区在线观看| 一区二区三区成人在线视频| 亚洲国产欧美日韩另类综合| 三级欧美韩日大片在线看| 男男成人高潮片免费网站| 国产一区中文字幕| 97久久久精品综合88久久| 欧美综合欧美视频| 精品国内二区三区| 国产精品丝袜久久久久久app| 亚洲欧美日本韩国| 五月天亚洲精品| 久久97超碰国产精品超碰| 成人一级黄色片| 在线国产电影不卡| 精品国产乱码91久久久久久网站| 国产精品日产欧美久久久久| 一区二区三区国产| 久久99国产乱子伦精品免费| 国产大陆亚洲精品国产| 色婷婷精品久久二区二区蜜臂av| 91精品国产aⅴ一区二区| 久久亚洲欧美国产精品乐播 | 欧美一卡二卡三卡| 国产欧美精品一区| 午夜精品一区二区三区三上悠亚 | 欧美日韩国产影片| 国产午夜亚洲精品午夜鲁丝片| 一区二区三区不卡视频在线观看| 久久99国产精品免费| 色婷婷av一区| 国产女人18水真多18精品一级做| 亚洲欧美激情视频在线观看一区二区三区| 日韩影院免费视频| 91精品福利在线| 国产日韩欧美高清在线| 日韩av中文字幕一区二区三区| 99麻豆久久久国产精品免费 | 欧美视频在线不卡| 久久久久久久久久久久久久久99 | 波多野结衣亚洲一区| 欧美一级欧美三级| 亚洲自拍偷拍欧美| 成人一级视频在线观看| 欧美精品一区二区三区在线| 午夜精品爽啪视频| 91久久精品一区二区三区|