python下载小说
我以前喜欢看小说,玄幻,武侠,修真是我的最爱,刚学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下载小说相关推荐
- python 下载小说
以下载官场风月小说为例: 具体代码: # coding=utf-8 import os import re from selenium import webdriver from selenium.c ...
- Python下载小说遮天
V1.0 ---抓取的笔趣阁网站上的 ---用的xpath解析html ---后边的章节目录为啥不见了尴尬 ---num参数为下载多少章节 import requests import unicode ...
- python下载代码-Python3----下载小说代码
前言 该文章主要分析编写爬虫小说的思路,文章代码使用语言Python3.7 2020-03-20 天象独行 第一部分:面对过程编程 1:首先我们确定目标,我们将要从网页:"https://w ...
- Python 小把戏之下载小说
Python 小把戏之下载小说 #! /usr/bin/python3 # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import sys ...
- 批量下载小说网站上的小说(python爬虫)
随便说点什么 因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的. 想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊! 所以我就被 ...
- python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...
- 使用Python开发小说下载器,不再为下载小说而发愁 #华为云·寻找黑马程序员#
需求分析 免费的小说网比较多,我看的比较多的是笔趣阁.这个网站基本收费的章节刚更新,它就能同步更新,简直不要太叼.既然要批量下载小说,肯定要分析这个网站了- 在搜索栏输入地址后,发送post请求获取数 ...
- Python实现小说下载器,可以打包exe
前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...
- Python爬虫实战——下载小说
Python爬虫实战--下载小说 前言 第三方库的安装 示例代码 效果演示 结尾 前言 使用requests库下载开源网站的小说 注意:本文仅用于学习交流,禁止用于盈利或侵权行为. 操作系统:wind ...
- python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁
有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...
最新文章
- MySQL高级 - 常用工具 - mysqlshow
- 机器学习问题总结(02)
- 在互联网大环境下,IT编程以及网络营销,到底学哪个比较好就业?
- php1到12取值,零起点php入门第12课-php数组(1)
- element下拉框回显问题
- Nginx高可用极速实战:通过KeepAlived与华为云虚拟IP实现
- 数据结构课程设计,迷宫问题求解
- 体验重构版的可道云Kodbox
- 软件工程师中的软件维护概述
- 数据库系统-实体-联系模型
- 安卓手机卡顿怎么解决_苹果七系统内存满了手机卡顿解决方法
- tryhackme--Overpass 2 - Hacked
- 加菲猫语录精选74 中英俄三语版
- java 判断字符 不等于 或者_java中字符串不等于怎么判断
- Chrome 55 浏览器推出 Android 离线下载功能
- 深入浅出PaddlePaddle函数——paddle.Tensor
- BISHIMIANSHI
- 01--计算机基础知识
- qpython爬虫_python爬虫教程:批量抓取 QQ 群信息
- 团队协作三、OnlyOffice 实现文件在线预览和编辑