Python爬取小說《心理罪城市之光》

爬取結果

我們選擇努努小說進行小說的爬取
http://www.kanunu8.com/book4/10571/

  • 先寫代碼將目錄爬下來,添加到一個列表中,比較簡單,在此就不多說
#爬取結果
title=['序 往事',
 '第一章 和自己賽跑的人',
 '第二章 求婚',
 '第三章 報應',
 '第四章 足跡',
 '第五章 回憶的灰燼',
 '第六章 子宮',
 '第七章 雨夜尋蹤',
 '第八章 噩夢',
 '第九章 對手',
 '第十章 思路',
 '第十一章 同態(tài)復仇',
 '第十二章 他的樣子',
 '第十三章 地下室',
 '第十四章 似曾相識',
 '第十五章 城市之光',
 '第十六章 死期',
 '第十七章 公決',
 '第十八章 掌印',
 '第十九章 老宅',
 '第二十章 身份',
 '第二十一章 輪回',
 '第二十二章 殺手養(yǎng)成',
 '第二十三章 最愛',
 '第二十四章 忽略',
 '第二十五章 奪走',
 '第二十六章 熄滅',
 '第二十七章 死者的證言',
 '尾聲 我想你要走了']
  • 打開幾章小說,觀察URL規(guī)律
    http://www.kanunu8.com/book4/10571/186030.html
    http://www.kanunu8.com/book4/10571/186031.html
i=30
while i<59:
  url='http://www.kanunu8.com/book4/10571/1860'+str(i)+'.html'
  i+=1
  • 用循環(huán)打開并爬取每個網(wǎng)頁(每個章節(jié))
    使用框架打開網(wǎng)頁:
 try:
        r=requests.get(url,timeout=30)
        r.raise_for_status() #判斷網(wǎng)頁返回的狀態(tài)碼是否為200
        r.encoding=r.apparent_encoding
    except:
        return '產(chǎn)生異常'
  • 由于網(wǎng)頁結構比較簡單,使用Beautiful Soup解析網(wǎng)頁內(nèi)容
soup=BeautifulSoup(r.text,'lxml')
tag=soup.p.contents
  • 將解析的小說內(nèi)容寫入到文件
path='g:/'+title[(i-30)]+'.txt'
 with open(path,'w') as f:
        #f.write('第 %s 章\r\n\r\n'%(i-31))
        for a in tag:
            if type(a) is bs4.element.NavigableString:
                f.write(str(a.string[6:])+'\n')
                print(a.string[6:])
        f.close()

完整代碼:

# -*- coding: utf-8 -*-
"""
Comments  parsing 
 
@author: NiceBlueChai
""" 
import requests
import bs4

from bs4 import BeautifulSoup
import time
def getHTMLText(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        return r.text
    except:
        return '產(chǎn)生異常'



title=['序 往事',
 '第一章 和自己賽跑的人',
 '第二章 求婚',
 '第三章 報應',
 '第四章 足跡',
 '第五章 回憶的灰燼',
 '第六章 子宮',
 '第七章 雨夜尋蹤',
 '第八章 噩夢',
 '第九章 對手',
 '第十章 思路',
 '第十一章 同態(tài)復仇',
 '第十二章 他的樣子',
 '第十三章 地下室',
 '第十四章 似曾相識',
 '第十五章 城市之光',
 '第十六章 死期',
 '第十七章 公決',
 '第十八章 掌印',
 '第十九章 老宅',
 '第二十章 身份',
 '第二十一章 輪回',
 '第二十二章 殺手養(yǎng)成',
 '第二十三章 最愛',
 '第二十四章 忽略',
 '第二十五章 奪走',
 '第二十六章 熄滅',
 '第二十七章 死者的證言',
 '尾聲 我想你要走了']



for i in range(30,58):
    
    path='g:/'+title[(i-30)]+'.txt'
    url='http://www.kanunu8.com/book4/10571/1860'+str(i)+'.html'
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding='GBK'
    except:
        print('異常?。?!')
    soup=BeautifulSoup(r.text,'lxml')
    tag=soup.p.contents
    with open(path,'w') as f:
        #f.write('第 %s 章\r\n\r\n'%(i-31))
        for a in tag:
            if type(a) is bs4.element.NavigableString:
                f.write(str(a.string[6:])+'\n')
                print(a.string[6:])
        f.close()
    
    time.sleep(1)

??我的目標是:someday,即便你花錢看我的文章,也會覺得心滿意足


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 聲明:本文講解的實戰(zhàn)內(nèi)容,均僅用于學習交流,請勿用于任何商業(yè)用途! 一、前言 強烈建議:請在電腦的陪同下,閱讀本文...
    Bruce_Szh閱讀 13,003評論 6 28
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,835評論 6 427
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,012評論 25 709
  • 夜來雨淅瀝,駐足恐濕衣,幸有賣傘人,十元換遮蔽。 一抹杏花黃,千滴雨附妝,游子急步歸,聽雨耳邊唱。 一曲沁人心,兩...
    忘憂卉兒閱讀 173評論 0 0
  • 別拿回憶裝喜歡,欺騙自己可會誤終生哦! 01 逛街的時候看上了一條很喜歡的緊身連衣裙,卻因為有點小肚腩,穿不下。 ...
    吃一屋閱讀 1,712評論 0 0

友情鏈接更多精彩內(nèi)容