python下载在线阅读盗墓笔记小说的脚本

最近闲着没事想看小说,找到一个全是南派三叔的小说的网站,决定都下载下来看看,于是动手,在很多QQ群里高手的帮助下(本人正则表达式很烂,程序复杂的正则都是一些高手指导的),花了三四天写了一个脚本

需要 BeautifulSoup 和 requests 两个库

(我已经把注释写得尽量详细)

这个程序的执行速度很慢,求高手告诉我优化的方法!!

#-*-coding:utf8-*-

from bs4 import BeautifulSoup
import requests
import re
import os

#打开网页将所需的URL读取出来放进一个列表中
r = requests.get('http://www.nanpaisanshu.org/').content  #打开要读取的网页
content=BeautifulSoup(r).findAll('a',href=re.compile(r'\Ahttp://www.nanpaisanshu.org/[a-z]+\Z')) #在网页中找到需要的信息

sc = str(content) #转换为string类型

lists=[]
lists = sc.split(',')
lists = list(set(lists)) #删除列表中重复信息

lisy=[]

for line in lists:
    p=line.split('"')[1]  #按 " 分割,取出需要的信息写进数组
    lisy.append(p)        #这里已经拥有需要的url
    #print p
#print lisy

#把读取到的URL遍历打开,将所有网页保存到html文件中

s = os.getcwd()#当前路径

d = os.sep  #系统分隔符

namef='aaa' #文件加名称

#b = os.path.exists( s+d+namef) #判断是存在

f=os.path.exists(s+d+namef) #判断是存在

if f==False:
    os.mkdir(s+d+namef)  #如果文件夹不存在就新建一个
else:
    print u'已经存在'+namef

filenm = s+d+namef+d    #路径

i=1
for line in lisy:
    r = requests.get(line)   #遍历打开所有url
    print r.content
    print '\n'
    tfile=open(filenm+'neirong'+str(i)+'.html','w')
    i=i+1
    tfile.write(r.content) #将网页内容写入文件

#将URL文件中的符合要求的URL读取出来写进一个txt文件中
for i in range(1,len(lisy)+1):
    fp = open(filenm+'neirong'+str(i)+'.html', "r")
    of = open(filenm+'neirong'+str(i)+'.txt','w')
    content = fp.read()   #将文件内容读取

    p=re.compile(r'http://www\.nanpaisanshu\.org/.*?\.html') #正则匹配

    #print p.findall(content)

    #print type(p.findall(content))

    for line in p.findall(content):
        #print line+'\n'
        #if line !='http://www.nanpaisanshu.org/9701.html':
        of.write(line+'\n')  #将匹配到的文件写入另一个文件中
        #else:
            #continue

        #of.write(str(p.findall(content)))

#关闭文件
of.close()
fp.close()
tfile.close()

#将txt

for i in range(1,len(lisy)+1):
    ot=open(filenm+'neirong'+str(i)+'.txt','r')
    outfile=open(filenm+'quanbu'+str(i)+'.txt','a+')

    li=[]
    for line in ot:
        line = line.replace('\n','')
        li.append(line)   #将url文件中的数据放进列表中

    li = sorted(li)  #给列表排序

    for line in li:
        print line
        #line = line.replace('\n','')
        r = requests.get(line).content  #遍历打开所有url
        title=BeautifulSoup(r).find("div",{'class':"post_title"}).h2   #取出标题
        content=BeautifulSoup(r).findAll("div",{'class':"post_entry"}) #取出内容
        sti=str(title).replace('<h2>','').replace('</h2>','')  #处理标题,只保留文字

        #处理内容,只保留文字
        scon = str(content).replace('<p>','  ').replace('</p>','  ').replace('<br/>','\n')
        #print str(urllist)
        scon = re.sub("<.*>", "", scon)
        scon = re.sub("(.*?);","",scon)
        #scon = scon.strip()
        scon = '\n'.join(scon.split())

        print scon
        outfile.write(sti+'\n'+line+'\n'+scon) #将标题和内容写进文件中
    #i=i+1
    #print
#print urllist

print '=========================下载结束======================='

#关闭文件
outfile.close()
ot.close()

#取出指定文件夹下的所有文件名
targetDir=s+d+namef
for line in os.listdir(targetDir):

    p=re.compile(r'neirong[0-9]{1}') #用正则匹配
    if p.match(line)!=None:
        print "需要删除的文件"+s+d+namef+d+line+'!!'
        os.remove(s+d+namef+d+line)  #匹配成功就删除这个文件,os.remove()中需要完整路径
    else:
        print '保留文件!'
        continue

有时候会显示连接失败,然后程序报错,应该判断一下  requests.get(url).status_code != 200  不过我加了以后发现运行更慢,每个页面都判断,汗,可能是因为我这里网速几K的原因才会异常

时间: 2024-10-10 10:48:36

python下载在线阅读盗墓笔记小说的脚本的相关文章

python 网站爬虫 下载在线盗墓笔记小说到本地的脚本

最近闲着没事想看小说,找到一个全是南派三叔的小说的网站,决定都下载下来看看,于是动手,在很多QQ群里高手的帮助下(本人正则表达式很烂,程序复杂的正则都是一些高手指导的),花了三四天写了一个脚本 需要 BeautifulSoup 和 requests 两个库 (我已经把注释写得尽量详细) 这个程序的执行速度很慢,求高手告诉我优化的方法!! #-*-coding:utf8-*- from bs4 import BeautifulSoup import requests import re impor

【iOS开发-6】iOS框架以及手册的在线阅读和PDF版本的iOS Technology Overview下载

看一下官方文档,就可知:iOS框架就是iOS开发的整个技术,只不过apple把所以的技术都分类封装到不同的框架里面,便于需要的人调用. 当然,至于iOS框架从底层到顶层分为Core OS.Core Services.Media.Cocoa Touch四个层,可以简单理解成把那么多框架分成四个类而已. (1)iOS框架大概介绍 iOS的开发框架有很多,差不多71个,两年前只有40个左右,可以预见只会越来越多. 但是常用的也就十几个,比如CFNetwork.Foundation.UIKit这些,而诸

Python 爬虫 之 阅读呼叫转移(一)

你是否苦恼于网上无法下载的"小说在线阅读"内容?或是某些文章的内容让你很有收藏的冲动,却找不到一个下载的链接?是不是有种自己写个程序把全部搞定的冲动?是不是学了 python,想要找点东西大展拳脚,告诉别人"哥可是很牛逼的!"?那就让我们开始吧! 哈哈~ 好吧,我就是最近写 Yii 写多了,想找点东西调剂一下.... = = 本项目以研究为目的,所有版权问题我们都是站在作者的一边,以看盗版小说为目的的读者们请自行面壁! 说了这么多,我们要做的就是把小说正文的内容从网

python爬虫-爬取盗墓笔记

本来今天要继续更新 scrapy爬取美女图片 系列文章,可是发现使用免费的代理ip都非常不稳定,有时候连接上,有时候连接不上,所以我想找到稳定的代理ip,下次再更新  scrapy爬取美女图片之应对反爬虫  文章. 好了,废话不多说,咱们进入今天的主题.这一篇文章是关于爬取盗墓笔记,主要技术要点是scrapy的使用,scrapy框架中使用mongodb数据库,文件的保存. 这次爬取的网址是  http://seputu.com/.之前也经常在上面在线看盗墓笔记.  按照咱们之前的学习爬虫的做法,

Python 爬虫 之 阅读呼叫转移(二)

上一篇博客我们成功地从网页上爬下了小说的一个章节,理所当然地,接下来我们要把整本小说都爬下来.首先,我们要把程序从原来的读完一章就结束,改成读完一章之后可以继续进行下一章的阅读. 注意到每个小说章节的网页下面都有下一页的链接.通过查看网页源代码,稍微整理一下(  不显示了),我们可以看到这一部分的 HTML 是下面这种格式的: <div id="footlink"> <script type="text/javascript" charset=&q

Ajax学习教程在线阅读

  1.什么是AJAX ?(1) 2.什么是AJAX ?(2) 3.什么是AJAX ?(3) 4.什么是AJAX ?(4) 5.Ajax基础教程(1)-Ajax简介 1.1 Web应用简史 6.Ajax基础教程(1)-Ajax简介 1.2 浏览器历史 7.Ajax基础教程(1)-Ajax简介 1.3 Web应用的发展历程 8.Ajax基础教程(1)-Ajax简介 1.3 Web应用的发展历程(2) 9.Ajax基础教程(1)-Ajax简介 1.3 Web应用的发展历程(3) 10.Ajax基础教

python下载pps视频

简单的python下载脚本 思路 视频播放地址提取 直接解析一下原网页的源文件,利用正则就可以得到所有视频的播放地址,下面的代码以微信公共平台python教程的播放地址为例. 视频链接提取 这里利用了飞驴视频下载API进行视频链接提取,按照API的格式填写相关参数就ok了 视频下载并保存 使用urllib.urlretrieve函数保存视频就可以了 源代码 源代码贴出来,大家相互学习一下.代码比较简单,是按照上面的思路一步步做的,这里就不详细解释了 ```python !/usr/bin/env

使用Python下载妹子图网站图片

最近在学习Python的爬虫部分.看到有网友在分享使用爬虫爬取各种网站的图片的代码,也想自己写个玩玩.今天花时间分析了一下妹子图网站的结构和HTML代码,使用urllib2和BeautifulSoup写出了一个自动下载妹子图网站图片的脚本. 妹子图网址:http://www.mzitu.com 运行效果如下: 源代码如下,请各位大神指教: # -*- coding:utf8 -*- # Python:         2.7.8 # Platform:       Windows # Autho

使用FlashPaper 实现JSP在线阅读[转]

http://cuisuqiang.iteye.com/blog/1841452 使用FlashPaper 实现JSP在线阅读 FlashPaper 是Macromedia推出的一款电子文档类工具,通过使用本程序,你可以将需要的文档通过简单的设置转换为SWF格式的Flash动画,原文档的排版样式和字体显示不会受到影响,这样做的好处是不论对方的平台和语言版本是什么,都可以自由的观看你所制作的电子文档动画,并可以进行自由的放大,缩小和打印,翻页等操作,对文档的传播非常有好处,而且由于Flash动画的