python超简单超基础的免费小说爬虫
python超简单超基础的免费小说爬虫
- 需要准备的环境
- 选取网页
- 思路
- 代码
- 总结
需要准备的环境
1.python 3.0及以上皆可
2.requests库,os,re
选取网页
找一个免费的小说网站,我在这里拿http://www.zanghaihua.org/wanlishiwunian/ 来举例子
思路
1.首先来看看网页的结构
右键网页,点击“查看网页源代码”
不难发现看到章节链接的格式都是</span><span> <a href="章节网址">章节名称</a>
随便点开一个章节,进入小说内容页面,然后再去看看源代码
还是不难发现文本的结构是<div class="bookcontent clearfix" id="BookText">内容<br/><br/><div
我们可以把爬取每个章节链接存到一个列表里面,再让python再次访问这个链接去爬取内容,最后写入文档,接下来直接上代码,注释我都写好了。
”我看你就是讲不懂才直接上代码的“
闭嘴[滑稽]
代码
#导入库
import requests
import os
import re#定义请求协议头
headers = {'accept': '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9',
'referer': 'http://www.zanghaihua.org/wanlishiwunian/',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3776.400 QQBrowser/10.6.4212.400',
}mulu_url = 'http://www.zanghaihua.org/wanlishiwunian/'#目录网址
html = requests.get(mulu_url,headers=headers)#目录源代码
html.encoding = 'utf-8'#文字兼容
psgurl_list = []#创建章节网址列表
psgname_list = []#创建章节名称列表
psg_urls =re.findall('</span><span> <a href="(.*?)">.*?</a>',html.text)#获得每个章节的网址
psg_names = re.findall('</span><span> <a href=".*?">(.*?)</a>',html.text)#获得每个章节的名称
#通过for循环每次搜索一到一个加入一个到列表
for psg_urls in psg_urls:psgurl_list.append(psg_urls)
book = open('万历十五年.txt',mode='w')#提前打开文本文档
for i in range(1,46):#这里1和46是章节数,应该有更好的方法,但是我就会这个QAQi+1mymes_html = requests.get(psgurl_list[i],headers=headers)mes_names = psg_names[i]
#爬出来是乱码,我们让文字兼容一下mymes_html.encoding = 'utf-8'mes_html = mymes_html.text#过滤一下符号英文字母以及分段mes_br = re.findall('<div class="bookcontent clearfix" id="BookText">(.*?)<br/><br/><div',mes_html)#爬取内容str1 = ' '.join(mes_br )#列表转字符串mes = re.sub('<br/><br/>',' ',str1)#过滤爬出来文本中的杂乱符号allmes = mes_names+ '\n' + mes#每段加入文章名#写入工作book.write(allmes+'\n')#写入
book.close()#关闭文本文档
最后在py文件同一目录下出现了一个文本文档,点开
成功了
总结
此爬虫是受Macro大佬的微博图片爬虫受启发写出来的。
这种方法只适合一些小网站,收费的网站需要js解析等等,作为萌新这点就够练了。
萌新的第一个博客,代码上面可能有点不简洁,有什么建议可以提出来,不喜勿喷。
最后祝各位万事成功!Go fot it!
python超简单超基础的免费小说爬虫相关推荐
- C语言超简单入门——基础知识
C语言超简单入门--基础知识 一.进制转换 进制:二进制.八进制.十进制.十六进制 进制的脚标: 二进制:B 如:101B 八进制:Q 如:12Q 十进制:D 如:10D 十六进制: H 如:123H ...
- Python超简单零基础树莓派摄像头车牌识别(使用开源openalpr)笔记
0.序言 这只是个笔记. 使用树莓派摄像头拍照,进行车牌识别. 1.安装 sudo apt-get update && sudo apt-get install -y openalpr ...
- python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程
按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...
- python批量下载文件教程_超简单超详细python小文件、大文件、批量下载教程
按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...
- python生成图像公章,用PPT就可以做印章?是的,超简单超逼真,教你一分钟搞定...
现在随着电子化办公的普及,电子印章的使用频率也越来越高了~ 说到制作印章,很多人第一想法都是用PS,其实不用的,PPT就可以轻松DIY了,不信?先看下效果. 一.印章制作 1.制作印章外框 我们打开P ...
- 超简单超详细-Linux系统的使用 基础篇(下)
Linux系统命令学习笔记: 上部. Linux系统命令学习笔记: 下部. 组管理 文件/目录 所有者 查看文件所有者 修改文件所有者 修改文件所在组 其他组概念 权限管理 权限介绍 rwx权限详解 ...
- java版银联8583协议解析,超简单超直观的实现及示例(全互联网最简单)
一直以来做嵌入式软件开发,跟银联8583协议通信打交道太多了. 最近有需要把8383协议的解析用到android上,但是搜遍了整个互联网,没发现有哪个简单好用点的java版8583解析库.就自己动手自 ...
- 超简单,带你学会多线程爬虫
作者:Tango,目前就职在一家对日开发的的IT服务公司.不是科班出身的我,出于对编程的热爱,自学了软件开发.从此深深陷入在代码的世界而无法自拔. 编辑:王老湿 今天我们来介绍了一些爬虫的技术,实现基 ...
- 超简单 超详细带你一键重装Win10系统
长时间的使用电脑过程中,总会遇到需要重装系统的时候,而目前对于重装系统的方法也有好几种,这其中选出最详细,最简单也是最便捷的就是使用一键重装工具来进行系统的重装,那么下面就和小编一起来看看如何使用系统 ...
最新文章
- 2016-10-26随笔
- Linux下远程桌面连接windows
- 将Java应用程序作为Windows服务安装
- JS window事件全集解析 (转载)
- AttributeError: 'module' object has no attribute 'version'
- 这些年无处安放的博客
- Python编程基础05:运算符与表达式
- spring与struts2整合出现错误HTTP Status 500 - Unable to instantiate Action
- leelen可视对讲怎么接线_对讲门铃怎么安装
- 电大计算机网络模拟题及答案,最新国家开放大学电大本科《计算机网络》期末题库及答案...
- 物联网(lot)特定场景最佳实践
- elasticsearch-mathc和term的区分
- php excel库,phpexcel类库下载
- Excel字符串拼接
- 【愚公系列】2022年02月 U3D全栈班 005-Unity引擎视图
- 快速排序_查找第k小元素
- jQuery第三方插件
- 操作系统实验二进程的创建控制实验(含代码及实验心得)
- hbase 源代码解析(21) 自定义过滤器
- 利用selenium和python 爬虫网站代码