内容简介:
本文主要是利用python3.5完成了笔趣阁小说的爬虫程序存储章节txt到本地,方便阅读。
需求:
由于手机最近阅读笔趣阁的小说插了特别多的广告特别麻烦;所以就做了个小程序实现下文本的爬取,全部把小说爬取下来存储成txt,放到手机上阅读。
过程:
说做就做,本来python爬虫就比较简单,笔趣阁的模块也都是直接读取源代码就可以获取文字;所以就都读下来了。
如果想全部存储到一个文档,对应的改动程序,让列表添加,再一次写入就行。
附上源码:有兴趣的可以设置下对应的文件夹,就可以直接写到上面的直接os.makefiles();
下载其它小说请注意修改 [下载到的本地目录, 书号, 起始index号]
源码:
import re import urllib.request as request from bs4 import BeautifulSoup import requests '''全局变量声明, 下载其它小说请注意修改 [下载到的本地目录, 书号, 起始index号]''' downLoadFile = 'F:\txt_cpxs\' ##要下载到的目录 shuhao = '2_2970' ## 书号就是http://www.biquge.com/2_2970/2456497.html; com后面的那个。 start, end = 2456497,100000 def setSrr(url): if(requests.get(url).status_code == 404): print('这是个错误网址') return [] print ('正在打开 ',url) l = [] '''''请求响应和不响应的处理''' response = request.urlopen(url) html = response.read() soup = BeautifulSoup(html) item = soup.findAll('h1') title = re.match(r'(.*)<h1> (.*)</h1>(.*)', str(item) ,re.M|re.I).group(2) l.append(title.split(' ')[0]) l.append(title) strings = soup.findAll('div', id="content")[0]; for string in strings: st = string.__str__() if (len(st.split('<br/>')) > 1): pass else: l.append(st) return l #strings.split() #穿入字符串 写入文件;标题为l[0] def setDoc(l): if(len(l) < 2): return file_s = downLoadFile + l[0] + '.txt' file = open(file_s, 'w+', encoding='utf-8') for i in l: file.write(' ') for ii in i.split(' '): file.write(ii) file.write(' ') #开始自加数值;读取新文档;如果没有;那么跳过 ''''' 最开始设置为1066142,100 ''' def setNum(num,n): l = [(num + i) for i in range(n)] sl = [str(l[i]) for i in range(len(l))] return sl '''''自动产生新的url''' ''''' 自己观察到: 第一章的地址http://www.biquge.com/2_2970/2456497.html 最后一张的地址 http://www.biquge.com/2_2970/3230837.html''' def setNewUrl(sl): urls = [] for x in sl: xsr = 'http://www.biquge.com/'+ shuhao +'/'+ x +'.html' #对应的单章html urls.append(xsr) return urls def setTxts(urls): for url in urls: setDoc(setSrr(url)) print( ''''' -------------- 开始下载超品相师 -------------- ——actanble 手打—— 如果要下载其他的txt文件: 请修改—— URL 和 对应的起始html的index号。 ''' ) setTxts(setNewUrl(setNum(start, end)))