利用正则表达式爬取网络小说,并按照章节下载到本地
2020-01-14 18:03
1591 查看
利用正则表达式爬取网络小说,并按照章节下载到本地
闲来无事,尝试了使用正则表达式爬取了某个明显没有反扒机制的小说网站,其实也是刚刚接触爬虫,第一次从网络上爬到感兴趣的东西还是令人开心的。
先贴为敬。
import re import requests from multiprocessing.dummy import Pool import os # 共有网址 start_url = 'http://www.kanunu8.com/book3/8255/' def get_source(url): """ 获取网页源代码。 :param url: 网址 :return: 网页源代码 """ html = requests.get(url) return html.content.decode('gbk') #这个网页需要使用gbk方式解码才能让中文正常显示 def get_toc(html): """ 获取每一章链接,储存到一个列表中并返回。 :param html: 目录页源代码 :return: 每章链接 """ toc_url_list = [] toc_block = re.findall('正文(.*?)</tbody>', html, re.S)[0] toc_url = re.findall('href="(.*?)"', toc_block, re.S) for url in toc_url: toc_url_list.append(start_url + url) return toc_url_list def get_article(html): """ 获取每一章的正文并返回章节名和正文。 :param html: 正文源代码 :return: 章节名,正文 """ chapter_name = re.search('size="4">(.*?)<', html, re.S).group(1) text_block = re.search('<p>(.*?)</p>', html, re.S).group(1) text_block = text_block.replace('<br />', '') text_block = text_block.replace(' ', '') return chapter_name, text_block def save(chapter, article): """ 将每一章保存到本地。 :param chapter: 章节名, 第X章 :param article: 正文内容 :return: None """ os.makedirs('丰乳肥臀', exist_ok=True) #如果没有丰乳肥臀文件夹,就创建一个,如果有,则什么都不做" with open(os.path.join('丰乳肥臀', chapter + '.txt'), 'w', encoding='utf-8') as f: f.write(article) def query_article(url): """ 根据正文网址获取正文源代码,并调用get_article函数获得正文内容最后保存到本地。 :param url: 正文网址 :return: None """ article_html = get_source(url) chapter_name, article_text = get_article(article_html) save(chapter_name, article_text) if __name__ == '__main__': toc_html = get_source(start_url) toc_list = get_toc(toc_html) pool = Pool(4) pool.map(query_article, toc_list)
多线程爬虫对小说进行爬取,速度也还行。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 利用线程将网络指定的图片下载到本地,将文件分四次下载,结果并未实现QAQ求大神指教下
- 利用WebClient正则表达式下载资源
- OC利用正则表达式获取网络资源(网络爬虫)
- c# 使用正则表达式 提取章节小说正文全本篇
- OC利用正则表达式获取网络资源(网络爬虫)
- 一只简单的网络爬虫(基于linux C/C++)————利用正则表达式解析页面
- 利用爬虫-C#下载网络上的小说大部分网站可以用
- OC利用正则表达式获取网络资源(网络爬虫)
- PHP通过正则表达式下载图片到本地的实现代码
- OC利用正则表达式获取网络资源(网络爬虫)
- 利用requests和正则表达式re爬取猫眼电影top100,并下载图片
- 利用python正则表达式抓取网页中的图片到本地
- OC利用正则表达式获取网络资源(网络爬虫)
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
- 初步运用多进程,利用正则表达式,爬取猫眼电影top100排行榜,储存到本地
- Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码
- OC利用正则表达式获取网络资源(网络爬虫)
- 利用正则表达式 进行字符的判断
- 8.Python基础学习笔记day8-正则表达式、网络编程、进程与线程
- 笔记:JS利用正则表达式实现去除Html标签方法