用PYTHON爬蟲簡單爬取網(wǎng)絡(luò)小說的示例

這篇文章主要介紹用PYTHON爬蟲簡單爬取網(wǎng)絡(luò)小說的示例,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司是一家專業(yè)提供海淀企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、做網(wǎng)站、H5場景定制、小程序制作等業(yè)務(wù)。10年已為海淀眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

用PYTHON爬蟲簡單爬取網(wǎng)絡(luò)小說。

這里是17K小說網(wǎng)上,隨便找了一本小說,名字是《千萬大獎》。

里面主要是三個函數(shù):

1、get_download_url() 用于獲取該小說的所有章節(jié)的URL。

分析了該小說的目錄頁http://www.17k.com/list/2819620.html的HTML源碼,發(fā)現(xiàn)其目錄是包含在Volume里的A標(biāo)簽合集。所以就提取出了URLS列表。

2、get_contents(target) 用于獲取小說指定章節(jié)的正文內(nèi)容

分析了小說中第一章節(jié)的頁面http://www.17k.com/chapter/2819620/34988369.html,發(fā)現(xiàn)其正文內(nèi)容包含在P標(biāo)簽中,正文標(biāo)題包含在H1標(biāo)簽中,經(jīng)過對換行等處理,得到正文內(nèi)容。傳入?yún)?shù)是上一函數(shù)得到的URL。

3、writer(name, path, text) 用于將得到的正文內(nèi)容和章節(jié)標(biāo)題寫入到千萬大獎.txt

理論上,該簡單爬蟲可以爬取該網(wǎng)站的任意小說。

from bs4 import BeautifulSoup
import requests, sys
'''
遇到不懂的問題?Python學(xué)習(xí)交流群:821460695滿足你的需求,資料都已經(jīng)上傳群文件,可以自行下載!
'''
target='http://www.17k.com/list/2819620.html'
server='http://www.17k.com'
urls=[]

def get_download_url():
    req = requests.get(url = target)
    html = req.text
    div_bf = BeautifulSoup(html,'lxml')
    div = div_bf.find_all('dl', class_ = 'Volume')
    a_bf = BeautifulSoup(str(div[0]),'lxml')
    a = a_bf.find_all('a')
    for each in a[1:]:
        urls.append(server + each.get('href'))


def get_contents(target):
        req = requests.get(url = target)
        html = req.text
        bf = BeautifulSoup(html,'lxml')
        title=bf.find_all('div', class_ = 'readAreaBox content')
        title_bf = BeautifulSoup(str(title[0]),'lxml')
        title = title_bf.find_all('h2')
        title=str(title[0]).replace('<h2>','')
        title=str(title).replace('</h2>','')
        title=str(title).replace(' ','')
        title=str(title).replace('\n','')
        texts = bf.find_all('div', class_ = 'p')
        texts=str(texts).replace('<br/>','\n')
        texts=texts[:texts.index('本書首發(fā)來自17K小說網(wǎng),第一時間看正版內(nèi)容!')]
        texts=str(texts).replace('                                          ','')
        return title,str(texts[len('[<div class="p">'):])

def writer(name, path, text):
        write_flag = True
        with open(path, 'a', encoding='utf-8') as f:
            f.write(name + '\n')
            f.writelines(text)
            f.write('\n')


#title,content=get_contents(target)
#print(title,content)
#writer(title,title+".txt",content)
get_download_url()
#print(urls)
i=1
for url in urls:
    title,content=get_contents(url)
    writer(title,"千萬大獎.txt",content)
    print(str(int(i/len(urls)*100))+"%")
    i+=1

以上是用PYTHON爬蟲簡單爬取網(wǎng)絡(luò)小說的示例的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

標(biāo)題名稱:用PYTHON爬蟲簡單爬取網(wǎng)絡(luò)小說的示例
網(wǎng)頁路徑:http://bm7419.com/article26/jdjdcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站用戶體驗、做網(wǎng)站、云服務(wù)器、電子商務(wù)、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管