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

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

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

效果如下:

实现的源代码如下,请各位指教:#-*-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'

python 自动下载脚本_Python脚本自动下载小说相关推荐

  1. python实现app自动签到器_Python实现自动签到脚本代码示例

    本篇文章小编给大家分享一下Python实现自动签到脚本代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 开发环境 : Windows10 + s ...

  2. 用python写一个自动注册脚本_python实现自动登录

    利用python,可以实现填充网页表单,从而自动登录WEB门户. (注意:以下内容只针对python3) 环境准备: (1)安装python (2)安装splinter,下载源码 python set ...

  3. python实现app自动签到器_Python实现自动签到脚本功能

    实训课期间忙里偷闲的学习了python的selenium包,唯一一点不好是要自己去查英文文档,明摆着欺负我这种英语不好的,想着用谷歌翻译一下,代码也给我翻译了,不知道是几个意思. 大二的时候就让我们做 ...

  4. python控制手机自动刷新闻_Python脚本利用adb进行手机控制的方法

    一. adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务 adb start-server 3. 查询当前运行的所有设备 adb devices 4. 可能 ...

  5. python文件整理程序_Python实现自动整理文件的脚本

    前言 工作上的文档和资料好几个月没整理了,因为平常太忙都是随手往桌面丢.整个桌面杂乱无章全是文档和资料.几乎快占满整个屏幕了,所有我必须要整理一下了.但是手动整理太费时间了,于是我想到了python. ...

  6. python自动备份手机_python实现自动备份windows应用数据

    开发这个功能主要是刚开始要备份几台windows服务器的用户数据,后来写到最后就变成了一个数据备份通用工具了,程序可以根据配置文件的配置进行目录数据的备份,只要指定备份的目录,程序会自动调用系统win ...

  7. 手机编写python脚本_Python 脚本利用adb 进行手机控制

    一.  adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务  adb start-server 3. 查询当前运行的所有设备  adb devices 4. ...

  8. python手机屏幕控制_Python脚本利用adb进行手机控制的方法

    一.  adb 相关命令: 1. 关闭adb服务:adb kill-server 2. 启动adb服务  adb start-server 3. 查询当前运行的所有设备  adb devices 4. ...

  9. pycharm定时运行python脚本_Python脚本用于定时关闭网易云音乐PC客户端

    本文主要讲述如何使用Python在指定的秒数后关闭Windows上运行的程序(此程序以网易云音乐为例).本文的背景是昨晚发现网易云音乐的PC客户端没有定时关闭的功能,可以使用Python编写一个简单的 ...

  10. python刷网易云_Python脚本用于定时关闭网易云音乐PC客户端

    本文主要讲述如何使用Python在指定的秒数后关闭Windows上运行的程序(此程序以网易云音乐为例).本文的背景是昨晚发现网易云音乐的PC客户端没有定时关闭的功能,可以使用Python编写一个简单的 ...

最新文章

  1. UTRAN 的用户面和控制面
  2. 深度学习模型压缩与加速综述
  3. ubuntu 使用 adb shell
  4. json字符串导入oracle,如何在Oracle中将JSON字符串转换为JSON
  5. js Ajax跨域访问
  6. pip安装Python包时下载速度慢
  7. ubuntu 安装php mcrypt扩展
  8. P1262 间谍网络 (tarjan缩点 水过去)
  9. 鸡兔同笼:不用暴力也可以
  10. 大数据存在的安全隐患该如何防患
  11. 用idea创建vue项目
  12. word参考文献的引用
  13. 发红包的程序代码java_Java实现微信发红包
  14. 百度云盘超4G大文件上传不了怎么办?
  15. 【学习笔记】网络安全基础知识总结
  16. Docker概述与基本使用
  17. java eos是什么_EOS是什么?EOS最重要的几个概念你知道吗?
  18. HarmonyDAG团队500万USDT等值代币帮助FCOIN事件用户公告
  19. 上海豪宅现排队买房 半夜12点还在签约
  20. gcc 查看默认使用的C语言标准版本

热门文章

  1. java微信昵称处理_Java微信开发昵称表情符过滤
  2. 2019年电赛D题简易电路特性测试仪试题ad5933测量小阻抗值
  3. 怎么用视频做gif动图?手把手教你制作gif表情包
  4. MATLAB线性回归
  5. 使用Softice调试驱动程序
  6. 论文页码不连续?经常改不对?教你一招立马解决
  7. 【Python】base64解码报错 Incorrect padding
  8. 2017年语义理解总结(一)
  9. 百度地图API循环创建标注给每个标注添加点击事件
  10. NPOI实现Word表格删除一行