蛙扑下载站:安全、绿色、放心的专业下载站! 首页|最近更新|专题集合|标签云|站内导航
笔趣阁小说爬取软件下载|笔趣阁小说爬取工具【附源码】Python版下载

笔趣阁小说爬取工具【附源码】Python版

  • 软件大小:15.3MB
  • 更新日期:2020-09-12 11:12:28
  • 软件语言:简体中文
  • 软件类别:上传下载
  • 软件授权:免费软件
  • 评分等级:
  • 插件情况:无插件请放心使用
  • 软件官网:http://www.vaopo.com/
  • 适用平台:Win All
本地下载文件大小:15.3MB
软件介绍 人气软件 相关文章 下载地址

笔趣阁小说爬取工具【附源码】,来自论坛用户原创制作分享的一款小说爬取工具,由Python编写,同时附上了源码资源方便大家浏览。笔趣阁小说爬取工具可以免费爬取下载网站小说资源,让您轻松获取想看的小说。使用前请参考相关说明,避免出现错误。

笔趣阁小说爬取工具【附源码】

笔趣阁小说爬取工具使用

程序运行方法:解压,在本文件夹中找到并打开dist文件夹,有一个“笔趣阁小说下载.exe”,双击运行

1、前往http://www.xbiquge.la/,找到要保存的小说,复制那个小说的目录页链接

2、按要求输入链接地址和小说名

3、爬取开始

(因为是单线程运行,爬取速度略慢大概1-2秒一章)

4、爬取结束后,会将所有章节内容整合成一个txt文件

笔趣阁小说爬取工具【附源码】 Python版

笔趣阁小说爬取工具源码

import requests

import re

header = {

    'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) chrome/78.0.3904.97 Safari/537.36'

}

#定义全局变量,用于保存所有获取到的小说内容

story_all = []

#获取标题及章节链接地址

def main():

    url = input("请输入小说目录页地址(暂时仅支持‘http://www.xbiquge.la/’站内小说):")

    book_name = input("请输入小说名称:")

    print("-----爬取开始-----")

    #获取目录页的HTML文本

    text = requests.get(url,header).content.decode('utf-8')

    #获取每个章节的章节名

    title = re.findall(r'<dd>.*?<a.*?>(.*?)</a>',text,re.DOTALL)

    #获取每个章节的链接地址

    loca = re.findall(r"<dd>.*?='(.*?)' >",text,re.DOTALL)

    #因为title和loca的长度相同,所以以索引的方式遍历,方便取值

    for i in range(len(title)):

        content(title[i],f'http://www.xbiquge.la{loca[i]}')

    #小说爬取完毕,开始保存

    print("@"*500)

    with open(r'%s.txt'%book_name, 'w',encoding='utf-8')as file:

        #遍历每一项,按顺序保存章节名和章节内容

        for story in story_all:

            file.write(story['title']+'\n')

            print(story['title'])

            file.write(story['story'])

#解析章节内容并保存

def content(title,url):

    #获取章节页的HTML文本

    text = requests.get(url,header).content.decode('utf-8')

    #因为之前写过直接爬取所有内容的,爬取出来的文本都带有\r不好处理

    #所以就一句一句的获取了

    story_content = re.findall(r'    (.*?)<br',text,re.DOTALL)

    #因为章节名中有“”空格,没办法作为文件名,所以把空格去掉

    title = re.sub(' ','-',title)

    #有时候不知道为什么小说内容会爬取到一个空数组,所以这里添加了一个检测程序

    #如果爬取到的为空,就重新爬取,直到获取到为止

    if story_content==[]:

        content(title,url)

        return 0

    story=""

    #前面提到,因为我是一句一句爬取的,所以这里做一下拼接,顺便去空格

    for story_contents in story_content:

        story = story+story_contents.strip()+'\n'

    #将章节名称和章节内容保存为一个字典

    this_story = {

        "title":title,

        "story":story

    }

    print(this_story['title'])

    #将字典添加到开头定义的全局变量中

    story_all.append(this_story)

if __name__ == "__main__":

    main()

下载周排行 下载总排行