使用Python爬蟲(chóng)爬取某閣的小說(shuō)

平時(shí)喜歡看一些書(shū)谍椅,加上朋友有時(shí)候也喜歡讓我給他爬取一些小說(shuō),趁最近空閑下來(lái)就簡(jiǎn)單的記錄一下自己寫(xiě)爬蟲(chóng)的過(guò)程吧

  • 首先需要導(dǎo)入相關(guān)的模塊

import requests
from lxml import etree 
  • 安裝對(duì)應(yīng)模塊的方式

# pip快速安裝
pip install requests
pip install lxml
  • 向網(wǎng)站發(fā)送請(qǐng)求并獲取網(wǎng)站數(shù)據(jù)


如圖所示紅框的地方為這本小說(shuō)的網(wǎng)址:https://www.xbiquge.la/7/7194/
于是就可以獲取到網(wǎng)頁(yè)數(shù)據(jù):

def book():
    url = "https://www.xbiquge.la/7/7194/"
    response = requests.get(url)
    response.encoding = 'utf-8'     # 此處為網(wǎng)頁(yè)編碼格式,如果為gbk的編碼格式闪檬,可以改成gbk
    html = etree.HTML(response.text)
  • 注意

網(wǎng)頁(yè)編碼格式需要打開(kāi)開(kāi)發(fā)者工具查看,如下圖:


  • 如何獲取正文地址和章節(jié)名稱


圖中紅框的表示小說(shuō)的正文章節(jié)內(nèi)容和章節(jié)名稱于是可以獲取到對(duì)應(yīng)的信息
XPath 語(yǔ)法
對(duì)于要想快速定位到對(duì)應(yīng)內(nèi)容的位置派昧,可以用chrome瀏覽器的插件
XPath Helper

  • 如圖XPath Helper使用效果

def book():
    url = "https://www.xbiquge.la/7/7194/"
    response = requests.get(url)
    response.encoding = 'utf-8'
    html = etree.HTML(response.text)
    url_list = html.xpath('//div[@id="list"]/dl/dd/a/@href')
    name_list = html.xpath('//div[@id="list"]/dl/dd/a/text()')
  • 獲取正文內(nèi)容

def book():
    url = "https://www.xbiquge.la/7/7194/"
    response = requests.get(url)
    response.encoding = 'utf-8'
    html = etree.HTML(response.text)
    url_list = html.xpath('//div[@id="list"]/dl/dd/a/@href')
    name_list = html.xpath('//div[@id="list"]/dl/dd/a/text()')
    for ur, na in zip(url_list, name_list):
        res = requests.get(f'https://www.xbiquge.la{ur}')      # 向網(wǎng)站發(fā)送請(qǐng)求并獲取網(wǎng)站數(shù)據(jù)
        res.encoding = 'utf-8'
        res_html = etree.HTML(res.text)
        info = res_html.xpath('//div[@id="content"]/text()')
  • 然后把正文內(nèi)容寫(xiě)入到文件中就完成了

完整代碼如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import requests
from lxml import etree


def book():
    url = "https://www.xbiquge.la/7/7194/"
    response = requests.get(url)
    response.encoding = 'utf-8'
    html = etree.HTML(response.text)
    url_list = html.xpath('//div[@id="list"]/dl/dd/a/@href')
    name_list = html.xpath('//div[@id="list"]/dl/dd/a/text()')
    fp = open("修真聊天群.txt", 'w')
    for ur, na in zip(url_list, name_list):
        res = requests.get(f'https://www.xbiquge.la{ur}')      # 向網(wǎng)站發(fā)送請(qǐng)求并獲取網(wǎng)站數(shù)據(jù)
        res.encoding = 'utf-8'
        res_html = etree.HTML(res.text)
        info = res_html.xpath('//div[@id="content"]/text()')
        fp.write(f'{na}\n\n')
        print(f'{na}__{ur}')        # 查看當(dāng)前章節(jié)名稱和鏈接地址
        for i in info:
            i = i.replace(r'\xa0', '').replace('\n\n', '\n')        # 去除垃圾信息并調(diào)整排版
            if i == '\r':
                continue
            fp.write(i)         # 寫(xiě)入正文到文本中
        fp.write('\n\n')
    fp.close()


if __name__ == '__main__':
    book()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拢切,隨后出現(xiàn)的幾起案子蒂萎,更是在濱河造成了極大的恐慌,老刑警劉巖淮椰,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件五慈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡实苞,警方通過(guò)查閱死者的電腦和手機(jī)豺撑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)黔牵,“玉大人聪轿,你說(shuō)我怎么就攤上這事』郑” “怎么了陆错?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)金赦。 經(jīng)常有香客問(wèn)我音瓷,道長(zhǎng),這世上最難降的妖魔是什么夹抗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任绳慎,我火速辦了婚禮,結(jié)果婚禮上漠烧,老公的妹妹穿的比我還像新娘杏愤。我一直安慰自己,他們只是感情好已脓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布珊楼。 她就那樣靜靜地躺著,像睡著了一般度液。 火紅的嫁衣襯著肌膚如雪厕宗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天堕担,我揣著相機(jī)與錄音已慢,去河邊找鬼。 笑死照宝,一個(gè)胖子當(dāng)著我的面吹牛蛇受,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播厕鹃,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兢仰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乍丈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起把将,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤轻专,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后察蹲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體请垛,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年洽议,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宗收。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡亚兄,死狀恐怖混稽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情审胚,我是刑警寧澤匈勋,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站膳叨,受9級(jí)特大地震影響洽洁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜菲嘴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一饿自、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧龄坪,春花似錦璃俗、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)苟穆。三九已至抄课,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雳旅,已是汗流浹背跟磨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留攒盈,地道東北人抵拘。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像型豁,于是被迫代替她去往敵國(guó)和親僵蛛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尚蝌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容