Python脚本自动下载小说

本人喜欢在网上看小说,一直使用的是小说下载阅读器,可以自动从网上下载想看的小说到本地,比较方便。最近在学习Python的爬虫,受此启发,突然就想到写一个爬取小说内容的脚本玩玩。于是,通过在逐浪上面分析源代码,找出结构特点之后,写了一个可以爬取逐浪上小说内容的脚本。

具体实现功能如下:输入小说目录页的url之后,脚本会自动分析目录页,提取小说的章节名和章节链接地址。然后再从章节链接地址逐个提取章节内容。现阶段只是将小说从第一章开始,每次提取一章内容,回车之后提取下一章内容。其他网站的结果可能有不同,需要做一定修改。在逐浪测试过正常。

分享此代码,一是做个记录,方便自己以后回顾。二么也想抛砖引玉,希望各路大神不吝赐教。

下面是我用来测试的页面:http://book.zhulang.com/263736/

效果如下:

实现的源代码如下,请各位指教:

#-*-coding:utf8-*-
#!/usr/bin/python
# Python:      2.7.8
# Platform:    Windows
# Program:     Get Novels From Internet
# Author:      wucl
# Description: Get Novels
# Version:     1.0
# History:     2015.5.27  完成目录和url提取
#              2015.5.28  完成目录中正则提取第*章,提取出章节链接并下载。在逐浪测试下载无误。

from bs4 import BeautifulSoup
import urllib2,re

def get_menu(url):
    """Get chapter name and its url"""
    user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0"
    headers = {‘User-Agent‘:user_agent}
    req = urllib2.Request(url,headers = headers)
    page = urllib2.urlopen(req).read()
    soup = BeautifulSoup(page)
    novel = soup.find_all(‘title‘)[0].text.split(‘_‘)[0]     # 提取小说名
    menu = []
    all_text = soup.find_all(‘a‘,target="_blank")   # 提取记载有小说章节名和链接地址的模块
    regex=re.compile(ur‘\u7b2c.+\u7ae0‘)          # 中文正则匹配第..章,去除不必要的链接
    for title in all_text:
        if re.findall(regex,title.text):
            name = title.text
            x = [name,title[‘href‘]]
            menu.append(x)       # 把记载有小说章节名和链接地址的列表插入列表中                
    return menu,novel

def get_chapter(name,url):
    """Get every chapter in menu"""
    html=urllib2.urlopen(url).read()
    soup=BeautifulSoup(html)
    content=soup.find_all(‘p‘)     # 提取小说正文
    return content[0].text
    
    
    

if __name__=="__main__":
    url=raw_input("""Input the main page‘s url of the novel in ZhuLang\n        Then Press Enter to Continue\n""")
    if url:
        menu,title=get_menu(url)
        print title,str(len(menu))+‘\n     Press Enter To Continue   \n‘     # 输出获取到的小说名和章节数
        for i in menu:
            chapter=get_chapter(i[0],i[1])
            raw_input()
            print ‘\n‘+i[0]+‘\n‘        
            print chapter
            print ‘\n‘
时间: 2024-07-30 16:13:23

Python脚本自动下载小说的相关文章

利用python脚本自动下载ICML会议接受的文章

最近需要下载ICML会议2015年接受的最新的文章,但是到官网一看,那么多的文章,如果我一篇一篇点击下载的话,什么时候是个头呢?于是就想着用python脚本对文章的页面进行处理,得到相关文章的url,然后进行下载. 通过观察ICML会议的Accepted Papers发现,其的结构还是比较整齐的,其中我们需要的信息的代码片段如下: <div class="paper"> <p class="title">Approval Voting and

定时运行Python脚本(下载数据)

阿里云对象存储通过外网下载的数据需要收费,标准型存储的外网流出流量计费方式: 00:00-08:00(闲时):0.25元/GB:8:00-24:00(忙时):0.50元/GB. 如果对数据的时效要(wei)求(le)不(sheng)高(qian),可以做一个Python脚本,每天早上07:00自动运行下载数据. WIN10,Python 3.7.4 准备好调试完成的下载数据脚本 oss_download.py,放到"E:\data"目录下(如果是其他目录,下面文件中的相关地址记得要一起

使用python脚本自动测试简单版本

主机使用python脚本对软件进行测试时,需要在主机安装对应的python模块: 1.安装uiautomator模块(ubuntu) sudo apt-get install python-pip pip install uiautomator r如果安装失败 pip install uiautomator -i https://pypi.doubanio.com/simple 2.运行对应的脚本 d(resourceId="com.XXX.XXX.accountcenter:id/cropci

使用python脚本自动创建pip.ini配置文件

运行一下python代码自动创建pip/pip.ini文件并添加pip源 """ python建立pip.ini.py 2016年4月30日 03:35:11 codegay """ import os ini="""[global] index-url = https://pypi.doubanio.com/simple/ [install] trusted-host=pypi.doubanio.com "

打造一款Python实现自动下载电影的“脚本”!那种电影也可以哦!

都很有规律不是吗?而在Scrapy里面,就可以设定我们想要的规律,Scrapy就可以对这些符合规律的网址及页面信息进行处理.先来看看成果吧,这一部分中,我们想要的结果就是输出排行榜里面的电影名称: 而且我们其实可以做的更好. Pycharm用这个文件夹创建Project,douban/db处创建一个方便IDE运行的文件run.py 输入 from scrapy.cmdline import execute execute(['scrapy', 'crawl', 'douban']) 打开doub

python脚本——自动推送txt,EXCEL等文件模板

#!/usr/bin/python # -*- coding: utf-8 -*- #此处支持中文字符一定要放在前两行,置后的话不生效,脚本报错#!/usr/bin/env python import smtplib from email.mime.text import MIMEText import string import time import datetime HOST = "mail.xxxxxx.com" #smtp主机地址 SUBJECT_1 = "xxx数

通过脚本自动下载Esri会议材料

在Esri的官网上,可以下载到Esri参加或者举办的各类会议的材料.官方地址为:http://proceedings.esri.com/library/userconf/index.html. 针对某一会议,该网上往往提供会议材料清单表格,部分材料是提供下载的,例如PPT文档或者PDF文档. 以下脚本可用于辅助下载Esri Proceeding网站上的会议PPT,下载好的文档会自动以文档的标题重命名,这样方便检索使用. 制定下载后存放文档的本地文件夹,预先把包含会议材料清单表格的页面使用浏览器保

python脚本处理下载的b站学习视频

作为常年在b站学习的我,一直以来看到有兴趣的视频,从来都是点赞收藏下载三连,但是苦于我那小钢炮iphone se屏幕大小有限,看起视频实在费劲,决定一定要找个下载电脑上下载b站视频的方法,以前用过硕鼠,可惜速度不行,批量解析也会出些问题,就没用了,后来也用过一些其他小工具,效果都不咋样,今天真是发现神器了,还支持迅雷下载,速度6M多美妙,真是美滋滋?? 下面重磅教程来袭: 一.找到视频的播放地址,如“七周成为数据分析师”,此视频地址为:https://www.bilibili.com/video

[python] 1、python鼠标点击、移动事件应用——写一个自动下载百度音乐的程序

1.问题描述: 最近百度总爱做一些破坏用户信任度的事——文库金币变券.网盘限速,吓得我赶紧想办法把存在百度云音乐中的歌曲下载到本地. http://yinyueyun.baidu.com/ 可问题是云音乐中并没有批量下载,而上面我总共存了700多首音乐! 因此:有必要写一个脚本自动下载这些音乐了!!! 2.解决问题 自动下载歌曲有两种方法: JS法 模拟鼠标点击法 由于考虑到JS法需要分析网页结构.寻找下载链接,工作量有点大,于是选择用模拟鼠标点击法! 在linux上我首先想到用python来做