python使爬取的小说更利于观看的方法:

1、使用追加模式将文章写入txt文本

关于文件的写入, ‘w’ 的方式 是覆盖写, 没有就创建, 那么我们写小说就不需要用这个, 使用

‘a’ 追加写的模式, 然后添加适当的分隔符, 只有文本中添加目录, 整个txt在手机中才会显示出目录的存在 ,我的实例如下: 最好加点文字提示, 代表这章节下载成功到总txt中 !path = 'D://爬取小说//'

os.chdir(path)  # 进入这个文件夹

with open('酒神.txt', 'a+', encoding='utf-8') as fw:

fw.write(''.join(items['title']) + '\n\n\n' + '- ' * 40)

fw.write(''.join(items['text']))

print(f'{items["title"]} 下载完成!')

2、使用xpath读取网页的文章内容

爬取小说这样的文字量很多的情况下, 文字的处理显得极为重要了,爬取小说不推荐使用正则re,也不推荐使用soup, 原因你获取不了网页自带的换行符和缩进符, 比如 \xboo 之类的, 如果你获取不了文本自带的这些,那么你就得自己添加,可以使用re的sub进行适当的替换换行,这就很麻烦,这里一定推荐使用xpath的text() 去匹配, 方便快捷,爬小说的小助手!text = html.xpath('//div[@id="content"]/text()')

3、添加sleep函数,降低爬取速度

为什么会出现这样的情况,高频发的请求网址,如果不是使用框架, 那么就需要设置延迟时间了。比如sleep() 或者 request 加入参数 timeout ,不然很容易被网址通过请求次数 进而识别出来 这是一个爬虫程序, 也就是非人类操作, 那么他就可以不让你请求,从而你就爬虫失败!r = requests.get(url, headers=self.headers)

time.sleep(0.7)

完整代码如下:# -*- coding :  utf-8 -*-

# @Time      :  2020/6/2  16:13

# @author    :  沙漏在下雨

# @Software  :  PyCharm

# @CSDN      :  https://me.csdn.net/qq_45906219

import requests

from lxml import etree

import os

import time

class Spider:

def __init__(self):

self.start_url = 'http://www.biquge.info/11_11079/'

self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '

'AppleWebKit/537.36 (KHTML, like Gecko)'

' Chrome/81.0.4044.129 Safari/537.36',

'Host': 'www.biquge.info',

'Referer': 'http://www.biquge.info/11_11079/5216668.html',

'Cookie': 'clickbids=11079; Hm_lvt_6dfe3c8f195b43b8e667a2a2e5936122=1591085546;'

' Hm_lvt_c979821d0eeb958aa7201d31a6991f34=1591085539,1591085553,1591085815; '

'Hm_lpvt_6dfe3c8f195b43b8e667a2a2e5936122=1591087376; '

'Hm_lpvt_c979821d0eeb958aa7201d31a6991f34=1591087377'}

def get_page(self):

"""

获得每一章节的网址

yield 回去

"""

r = requests.get(self.start_url, headers=self.headers)

if r.status_code == 200:

r.encoding = r.apparent_encoding

html = etree.HTML(r.text)

page_url = html.xpath('//div[@id="list"]/dl/dd/a/@href')

for url in page_url[222:]:

url = f'http://www.biquge.info/11_11079/{url}'

yield url

def save_text(self, items):

"""

根据章节下载'

"""

path = 'D://爬取小说//'

os.chdir(path)  # 进入这个文件夹

with open('酒神.txt', 'a+', encoding='utf-8') as fw:

fw.write(''.join(items['title']) + '\n\n\n' + '- ' * 40)

fw.write(''.join(items['text']))

print(f'{items["title"]} 下载完成!')

def parse_page_error(self, r):

# 为处理异常:

r.encoding = r.apparent_encoding

html = etree.HTML(r.text)

title = html.xpath('//div[@class="bookname"]/h1/text()')

text = html.xpath('//div[@id="content"]/text()')

items = {}

items['title'] = title

items['text'] = text

self.save_text(items)

def parse_page(self):

"""

分析每一章节  然后下载, 次数过快 容易炸ip 三次保底请求 !

"""

for url in self.get_page():

r = requests.get(url, headers=self.headers)

time.sleep(0.7)

if r.status_code == 200:

self.parse_page_error(r)

else:

print(f'该 {url}未下载成功! 再次请求')

rr = requests.get(url, headers=self.headers)

if rr.status_code == 200:

self.parse_page_error(rr)

else:

print("第三次请求!")

rrr = requests.get(url, headers=self.headers)

self.parse_page_error(rrr)

print('全部下载完成!')

jiushen = Spider()

jiushen.parse_page()

更多Python知识,请关注:Python自学网!!

用python爬取小说的总结_python如何使爬取的小说更利于观看相关推荐

  1. python爬去百度百科词条_python简单爬虫爬取百度百科python词条网页

    目标分析: 目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL: ...

  2. python爬取链家新房_Python爬虫项目--爬取链家热门城市新房

    本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确 ...

  3. python多线程爬虫 爬取多个网页_python多线程爬虫爬取顶点小说内容(BeautifulSoup+urllib)...

    思路 之前写过python爬取起点中文网小说,多线程则是先把爬取的章节链接存到一个列表里,然后写一个函数get_text每次调用这个函数就传一个章节链接,那么就需要调用n次该函数来获取n章的内容,所以 ...

  4. python爬取小说功能实现_Python实现的爬取小说爬虫功能示例

    本文实例讲述了Python实现的爬取小说爬虫功能.分享给大家供大家参考,具体如下: 想把顶点小说网上的一篇持续更新的小说下下来,就写了一个简单的爬虫,可以爬取爬取各个章节的内容,保存到txt文档中,支 ...

  5. python爬取小说项目概述_Python实现的爬取小说爬虫功能示例

    Python实现的爬取小说爬虫功能示例 发布时间:2020-10-09 03:39:58 来源:脚本之家 阅读:64 作者:阳光Cherry梦 本文实例讲述了Python实现的爬取小说爬虫功能.分享给 ...

  6. python爬取小说项目概述_Python爬虫实战——爬取《斗破苍穹》全文小说(基于re模块)...

    目标 思路 手动浏览前几章节,观察url网址变化,以下为前4章节网址: 可以看到,第1和第2章节没有明显规律,第2章节以后规律明显,通过数字递加来分页.手动输入http://www.doupoxs.c ...

  7. 怎么用python爬小说统计词频_python小练习爬取《寻梦环游记》评论并做词频统计...

    本来其实是想爬豆瓣电影上10几万条评论的,但后来ip被封了,换代理ip之类的还不熟练,还在学习中,所以先做时光网上10页评论的分析吧,虽然时光网上粗粗一看评论就短了很多,水了很多.主要是继续练习Bea ...

  8. python爬取b站评论_python高效之爬了B站再爬微博

    全文简介 本文是用Python爬取微博移动端的数据.可以看一下Robots协议.另外尽量不要爬取太快.如果你毫无节制的去爬取别人数据,别人网站当然会反爬越来越严厉.所以,不要难为别人,到最后其实是在难 ...

  9. python爬取多页数据_python爬虫实现爬取同一个网站的多页数据代码实例

    本篇文章小编给大家分享一下python爬虫实现爬取同一个网站的多页数据代码实例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 一.爬虫的目的 从网上获 ...

最新文章

  1. vue 点击事件执行多次
  2. Windows上安装Nacos
  3. 北京哪儿有卖tods豆豆鞋的?在线等答案、、、、(类似动物园、西单等地)_百度知道...
  4. Centos7-安装mysql5-7
  5. SAP常用BASIS技巧整理
  6. python 自动化框架打包_听说很多人都不会打包,教你Python实现前端自动化打包部署!...
  7. 树莓派 安装中文字体、中文输入法fcitx和googlepinyin输入法
  8. Struts2-值栈的定义
  9. 线程问题—一个线程怎么调出另外一个线程的结果。
  10. php删除文见,php如何删除文件夹
  11. RedisTemplate和StringRedisTemplate使用
  12. Python中的回文详解
  13. Qt工作笔记-各种构造函数汇总以及运算符重载(入门必备)
  14. CentOS操作系统版本信息查看和隐藏
  15. 作业计算机组成与原理,课程计算机组成原理与汇编语言作业四
  16. jquery的DOM节点操作(创建和插入元素节点)
  17. 远程唤醒电脑WOL(Wake On LAN - 局域网唤醒)
  18. android TextView首行缩进两个字符
  19. 快应用中实现自定义抽屉组件
  20. Uav开发杂记-4-无人机开发的C-C++

热门文章

  1. Android中GPS简介及其应用
  2. 网络 路由器基本协议配置
  3. LAD线性判别模型简介及sklearn参数
  4. 一键安装Lnmp教程
  5. 当效益不好的时候为什么公司选择裁员,而不是降薪
  6. HTML怎么把图片颜色加深,怎么把Photoshop的图片整体颜色加深?
  7. 并不对劲的方格取数问题
  8. [LayoutConstraints] Unable to simultaneously satisfy constraints.
  9. oracle裁员原因_立足中国30年,甲骨文(Oracle)为何在中国进行大裁员?
  10. android ftp