天天看点

python爬取一部小说

这次爬取一个鬼吹灯的小说

步骤很简单

第一步:选取目标小说的网站(这次是个静态网站)

第二步:获取网页源码(由于静态网站的缘故,这一步非常简单了)

第三步:使用正则表达式,或任意解析库,解析源码信息

第四步:保存到本地,小说就保存为txt格式,手机也可以看

这次操作占用的资源很少,所以也不需要引用scrapy框架,或selenium插件。

下面直接套代码:

import requests,json,time
from bs4 import BeautifulSoup

def getHtml(url):
    response = requests.get(url)
    return response.text

def parseHtml(content):
    soup = BeautifulSoup(content,'lxml')
    chapter = soup.find_all('div',class_ = 'content')
    content = soup.find(id='content')
    for i in chapter:
        novel_chapter = soup.find_all('h1')[0].string
        novel_content = content.text.replace('<br/>',' ')
        A = '章节:{} 内容:{}'.format(novel_chapter,novel_content)
        print(A)
        with open('F:Spiders/小说/鬼吹灯.txt', 'a', encoding='utf-8')as F:
            F.write(json.dumps(A, ensure_ascii=False) + '\n')

if __name__ == '__main__':
    print('目标小说:鬼吹灯')
    page = input('请输入你要爬取的页数:')
    if int(page) <= 35:
        time_start = time.time()
        for i in range(1,int(page)+1):
            url = 'http://www.gdbzkz.com/jingjuegucheng/{}.html'.format(i)
            content = getHtml(url)
            parseHtml(content)

        time_end = time.time()
        print('爬取完成,共耗时',(time_end-time_start))

    else:
        print('不能超过35页')
           

第一部小说,这里结合网页规律共 35页。

python爬取一部小说

最后爬取完成,共耗时50s

python爬取一部小说