本篇文章给大家分享的是有关python爬取免费或付费小说的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
小说相信大家都爱看吧一章接一章具有极大的吸引力 看了还想看,当然付费小说价格也不便宜 看到一半突然收费 猝不及防!在我们程序员这里 收费是不存在的 万物皆可爬
什么是网络爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
环境:Python3.6+Windows
开发工具:你喜欢用哪个就用哪个,你开心就好!
主要思路:
1 获取主页源代码
2 获取章节超链接
3 获取章节超链接源码
4 获取小说内容
5 下载,文件操作
Python代码了解一下
import urllib.requestimport re# 1 获取主页源代码# 2 获取章节超链接# 3 获取章节超链接源码# 4 获取小说内容# 5 下载,文件操作# 驼峰命名法# 获取小说内容def getNovertContent(): # <http.client.HTTPResponse object at 0x000001DFD017F400> html = urllib.request.urlopen("http://www.quanshuwang.com/book/0/269").read() html = html.decode("gbk") # 不加括号 不匹配 # 正则表达式 .*? 匹配所有 reg = r'<li><a href="(.*?)" title=".*?">(.*?)</a></li>' # 增加效率的 reg = re.compile(reg) urls = re.findall(reg,html) # print(urls) # 列表 # [(http://www.quanshuwang.com/book/0/269/78850.html,第一章 山边小村), # (http://www.quanshuwang.com/book/0/269/78854.html,第二章 青牛镇)] for url in urls: # 章节的URL地址 novel_url = url[0] # 章节标题 novel_title = url[1] chapt = urllib.request.urlopen(novel_url).read() chapt_html = chapt.decode("gbk") # r 表示原生字符串 \ \\d r"\d" reg = r'</script> (.*?)<script type="text/javascript">' # S 代表多行匹配 reg = re.compile(reg,re.S) chapt_content = re.findall(reg,chapt_html) # print(chapt_content) # 列表["  二愣子睁大着双眼,直直望着茅草和烂泥糊成的<br />"] # 第一个参数 要替换的字符串 替换后的字符串 chapt_content = chapt_content[0].replace(" ","") # print(chapt_content) 字符串 二愣子睁大着双眼,直直望着茅草和烂泥糊成的<br /> chapt_content = chapt_content.replace("<br />","") print("正在保存 %s"%novel_title) # w 读写模式 wb # f = open("{}.txt".format(novel_title),'w') # f.write(chapt_content) with open("{}.txt".format(novel_title),'w') as f: f.write(chapt_content) # f.close()getNovertContent()
运行结果:
以上就是python爬取免费或付费小说的示例分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
亿速云免费服务器限时活动,即开即用、新—代英特尔至强铂金CPU、SSD云盘,0元免费领,库存有限,领完即止! 点击查看>>点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4581260/blog/4364609