我以前喜欢看小说,玄幻,武侠,修真是我的最爱,刚学python不久,出于我对小说的热爱,我写了个脚本用来下载我经常看的笔趣阁网站首页所有的小说

首先得到网站首页的html,分析首页中有多少小说,循环得到小说的html,提取出小说名字,创建小说名字为名的文本,将每一章节的章节名和内容提取出来写入到文本中,循环直到最后一个章节,然后开始下一本小说

我这里是先把html下载到本地G:\url\中,然后读取的,其实直接打开url也可以。之前运行时有时候会卡在某个地方,得不到某个网页,我以为是缓存的问题,其实不是。解决方法是我设置了五秒中的超时和异常处理。如果五秒钟得不到这一章节的页面那么就跳过下载下一章

# -*- coding: utf-8 -*-
#   -------------------------------------------
#   下载http://www.biquge.la笔趣阁首页上显示的所有小说
#   下载的小说存放在G:\txt文件夹下
#   -------------------------------------------
#   2014/8/23
#   wyp
#   -------------------------------------------import re
import urllib
import os
import socketdef getHtml(url):reg = r'http:\.\.(.*)'res = re.compile(reg)urlstr = url.replace('/', '.')print urlstrname = re.findall(res, urlstr)urlpathname = r'G:\url' +'\\' + name[0]print 'urlpathname = '+urlpathname try:socket.setdefaulttimeout(5.0)urllib.urlretrieve(url, urlpathname)except:passprint 'getHtml ---------------over'return urlpathnamedef getBook(html):reg = r'<a href="/book/(.*?)/'res = re.compile(reg)Book = re.findall(res, html)return Bookdef getName(html):reg = r'<h1>(.*?)</h1>'res = re.compile(reg)name = re.findall(res, html)return namedef getZhangJie(html):reg = r'<dd><a href="(.*?)">(.*?)</a>'res = re.compile(reg)zhangJie = re.findall(res, html)return zhangJiedef getContent(html):reg = r'<div id="content">(.*?)</div>'res = re.compile(reg)content = re.findall(res, html)return contentif __name__ == "__main__":url = raw_input("please input url: ")urlpathname = getHtml(url)print urlpathnamef1 = open(urlpathname, 'rb+')html = f1.read()print htmlBook = getBook(html)#去重保持元素顺序book = list(set(Book))book.sort(key=Book.index)for b in book:realurl = url + '/book/' + b + '/'print realurlrealurlname = getHtml(realurl)print realurlnamef2 = open(realurlname, 'rb+')realhtml = f2.read()BookName = getName(realhtml)filepath = os.path.join(r"G:\txt", BookName[0])filename = filepath + '.txt'print filenameif os.path.exists(filename):continuefd = open(filename, 'w+')zhangjie = getZhangJie(realhtml)for zj in zhangjie:sonurl = realurl + zj[0]print "url = %s" % sonurltry:sonurlname = getHtml(sonurl)print '-----'+sonurlnameexcept:               continuetry:f3 = open(sonurlname, 'rb+')except IOError:continuesonhtml = f3.read()zhangjieming = getName(sonhtml)if len(zhangjieming) == 0:continuefd.write('\t\t\t\t\t' + zhangjieming[0] + '\r\n')print "downding  " + zhangjieming[0]fd.write('\r\n')fd.flush()try:content = getContent(sonhtml)except:passif len(content) == 0:continuec1 = content[0].replace('<br />', '')c2 = c1.replace(' ', ' ')fd.write(c2)fd.write('\r\n\r\n\r\n\r\n')fd.flush()fd.close()f2.close()f3.close()

python下载小说相关推荐

  1. python 下载小说

    以下载官场风月小说为例: 具体代码: # coding=utf-8 import os import re from selenium import webdriver from selenium.c ...

  2. Python下载小说遮天

    V1.0 ---抓取的笔趣阁网站上的 ---用的xpath解析html ---后边的章节目录为啥不见了尴尬 ---num参数为下载多少章节 import requests import unicode ...

  3. python下载代码-Python3----下载小说代码

    前言 该文章主要分析编写爬虫小说的思路,文章代码使用语言Python3.7 2020-03-20 天象独行 第一部分:面对过程编程 1:首先我们确定目标,我们将要从网页:"https://w ...

  4. Python 小把戏之下载小说

    Python 小把戏之下载小说 #! /usr/bin/python3 # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import sys ...

  5. 批量下载小说网站上的小说(python爬虫)

    随便说点什么 因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的. 想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊! 所以我就被 ...

  6. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  7. 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#

    需求分析 免费的小说网比较多,我看的比较多的是笔趣阁.这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼.既然要批量下载小说,肯定要分析这个网站了- 在搜索栏输入地址后,发送post请求获取数 ...

  8. Python实现小说下载器,可以打包exe

    前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...

  9. Python爬虫实战——下载小说

    Python爬虫实战--下载小说 前言 第三方库的安装 示例代码 效果演示 结尾 前言 使用requests库下载开源网站的小说 注意:本文仅用于学习交流,禁止用于盈利或侵权行为. 操作系统:wind ...

  10. python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁

    有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...

最新文章

  1. MySQL高级 - 常用工具 - mysqlshow
  2. 机器学习问题总结(02)
  3. 在互联网大环境下,IT编程以及网络营销,到底学哪个比较好就业?
  4. php1到12取值,零起点php入门第12课-php数组(1)
  5. element下拉框回显问题
  6. Nginx高可用极速实战:通过KeepAlived与华为云虚拟IP实现
  7. 数据结构课程设计,迷宫问题求解
  8. 体验重构版的可道云Kodbox
  9. 软件工程师中的软件维护概述
  10. 数据库系统-实体-联系模型
  11. 安卓手机卡顿怎么解决_苹果七系统内存满了手机卡顿解决方法
  12. tryhackme--Overpass 2 - Hacked
  13. 加菲猫语录精选74 中英俄三语版
  14. java 判断字符 不等于 或者_java中字符串不等于怎么判断
  15. Chrome 55 浏览器推出 Android 离线下载功能
  16. 深入浅出PaddlePaddle函数——paddle.Tensor
  17. BISHIMIANSHI
  18. 01--计算机基础知识
  19. qpython爬虫_python爬虫教程:批量抓取 QQ 群信息
  20. 团队协作三、OnlyOffice 实现文件在线预览和编辑

热门文章

  1. X86汇编语言经典资料,初学者必看(转)
  2. DDNS动态域名解析
  3. Sentinel控制台 1.8.0实时监控空白
  4. 终于考过了驾照考试,现在就=驾照下来了
  5. 执行taosdemo发生错误Unable to establish connection
  6. 淡腾的Xcode 8注释快捷键注释失效
  7. 开心网android客户端,开心网Android客户端V3.8.1升级评测
  8. python自动化所用到的库介绍
  9. BBS.peidy.com版本
  10. 又是被打败的一天 (记招商银行笔试)