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超简单超基础的免费小说爬虫相关推荐

  1. C语言超简单入门——基础知识

    C语言超简单入门--基础知识 一.进制转换 进制:二进制.八进制.十进制.十六进制 进制的脚标: 二进制:B 如:101B 八进制:Q 如:12Q 十进制:D 如:10D 十六进制: H 如:123H ...

  2. Python超简单零基础树莓派摄像头车牌识别(使用开源openalpr)笔记

    0.序言 这只是个笔记. 使用树莓派摄像头拍照,进行车牌识别. 1.安装 sudo apt-get update && sudo apt-get install -y openalpr ...

  3. python批量下载网页文件-超简单超详细python小文件、大文件、批量下载教程

    按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...

  4. python批量下载文件教程_超简单超详细python小文件、大文件、批量下载教程

    按照不同的情况,python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放 ...

  5. python生成图像公章,用PPT就可以做印章?是的,超简单超逼真,教你一分钟搞定...

    现在随着电子化办公的普及,电子印章的使用频率也越来越高了~ 说到制作印章,很多人第一想法都是用PS,其实不用的,PPT就可以轻松DIY了,不信?先看下效果. 一.印章制作 1.制作印章外框 我们打开P ...

  6. 超简单超详细-Linux系统的使用 基础篇(下)

    Linux系统命令学习笔记: 上部. Linux系统命令学习笔记: 下部. 组管理 文件/目录 所有者 查看文件所有者 修改文件所有者 修改文件所在组 其他组概念 权限管理 权限介绍 rwx权限详解 ...

  7. java版银联8583协议解析,超简单超直观的实现及示例(全互联网最简单)

    一直以来做嵌入式软件开发,跟银联8583协议通信打交道太多了. 最近有需要把8383协议的解析用到android上,但是搜遍了整个互联网,没发现有哪个简单好用点的java版8583解析库.就自己动手自 ...

  8. 超简单,带你学会多线程爬虫

    作者:Tango,目前就职在一家对日开发的的IT服务公司.不是科班出身的我,出于对编程的热爱,自学了软件开发.从此深深陷入在代码的世界而无法自拔. 编辑:王老湿 今天我们来介绍了一些爬虫的技术,实现基 ...

  9. 超简单 超详细带你一键重装Win10系统

    长时间的使用电脑过程中,总会遇到需要重装系统的时候,而目前对于重装系统的方法也有好几种,这其中选出最详细,最简单也是最便捷的就是使用一键重装工具来进行系统的重装,那么下面就和小编一起来看看如何使用系统 ...

最新文章

  1. 2016-10-26随笔
  2. Linux下远程桌面连接windows
  3. 将Java应用程序作为Windows服务安装
  4. JS window事件全集解析 (转载)
  5. AttributeError: 'module' object has no attribute 'version'
  6. 这些年无处安放的博客
  7. Python编程基础05:运算符与表达式
  8. spring与struts2整合出现错误HTTP Status 500 - Unable to instantiate Action
  9. leelen可视对讲怎么接线_对讲门铃怎么安装
  10. 电大计算机网络模拟题及答案,最新国家开放大学电大本科《计算机网络》期末题库及答案...
  11. 物联网(lot)特定场景最佳实践
  12. elasticsearch-mathc和term的区分
  13. php excel库,phpexcel类库下载
  14. Excel字符串拼接
  15. 【愚公系列】2022年02月 U3D全栈班 005-Unity引擎视图
  16. 快速排序_查找第k小元素
  17. jQuery第三方插件
  18. 操作系统实验二进程的创建控制实验(含代码及实验心得)
  19. hbase 源代码解析(21) 自定义过滤器
  20. 利用selenium和python 爬虫网站代码

热门文章

  1. 暴力破解密码(pywifi)python
  2. pixi 平铺精灵 demo (二)
  3. FAT32转NTFS及失败解决方案
  4. 一秒7步解决校园网刷知乎显示不了图片
  5. 安装Ubuntu 14.10后要做的事(下)—— 开发工具篇
  6. 小孩子竟然也会得抑郁症,孩子得抑郁症怎么办?
  7. 怎么给视频加水印?快速学会
  8. qt实现visionpro的直线和圆形卡尺工具控件
  9. css html属性,HTML/CSS从零开始-常用属性
  10. 如何利用金山云ARM云服务器搭建Nginx服务