目标网站:https://www.snwx3.com/txt/434282.html

第一章地址:https://www.snwx3.com/book/434/434282/92792998.html

最后一章地址:https://www.snwx3.com/book/434/434282/92793103.html

注意查看地址最后的,有规律。

3103-2998+1=106,但是有三章地址是重复的,所有实际有103个地址,103个章节,正好符合目录列表,(多余的这三个章节等爬取下来后再手动删除)

创建项目

scrapy startproject quotetutorial
cd quotetutorial
scrapy genspider quotes www.snwx3.com

项目结构如下:

quotetutorial/start.py文件内容

目的是直接运行这个文件从而运行爬虫,就不用在命令行中运行爬虫了

#!/usr/bin/env python
#-*- coding: utf-8 -*- from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'quotes']) # quotes为quotes.py文件中的name变量的值

quotetutorial/quotetutorial/spiders/quotes.py文件内容

#!/usr/bin/env python
#-*- coding: utf-8 -*- import scrapy
from quotetutorial.items import QuotetutorialItem class QuotesSpider(scrapy.Spider):
name = 'quotes'
allowed_domains = ['www.snwx3.com']
base_url = "https://www.snwx3.com/book/434/434282/9279" pages = list(range(2998,3104)) # 遍历页数 def start_requests(self):
# 遍历循环图书索引页
for page in self.pages:
url = self.base_url + str(page) + ".html" # 构造请求地址
print('请求第%s页' % (url))
yield scrapy.Request(url=url, callback=self.parse) def parse(self, response):
res = response.css('#BookText::text').extract() # 使用浏览器的css选择器功能
# print(res)
item = QuotetutorialItem()
item['text'] = res
yield item

使用浏览器的css选择器功能



quotetutorial/quotetutorial/items.py文件内容

#!/usr/bin/env python
#-*- coding: utf-8 -*- import scrapy class QuotetutorialItem(scrapy.Item):
text = scrapy.Field() # 只获取内容,章节标题最后添加

quotetutorial/quotetutorial/pipelines.py文件内容

#!/usr/bin/env python
#-*- coding: utf-8 -*- import os class QuotetutorialPipeline:
def process_item(self, item, spider):
base_dir = os.getcwd()
fiename = base_dir + '/new2.txt' # 保存文件到当前目录
with open(fiename, 'a',encoding='utf-8') as f: # 防止乱码
text = "".join(item['text']) # list转str
f.write(text + '\n')
return item

quotetutorial/quotetutorial/settings.py文件内容

ROBOTSTXT_OBEY = False # 设置为False,表示不准收robots.txt规则

ITEM_PIPELINES = {
'quotetutorial.pipelines.QuotetutorialPipeline': 300, # 调用下载
}

最终效果

爬取后的结果是一行一个章节,使用notepad++软件操作,删除空白行,删除掉三个重复的章节,正好103行,表示103个章节,根据目标网站的地址,获取每章的名称,然后使用块编辑复制粘贴到每行的开头,完美。

使用scrapy爬取长安有妖气小说的更多相关文章

  1. python应用:爬虫框架Scrapy系统学习第四篇——scrapy爬取笔趣阁小说

    使用cmd创建一个scrapy项目: scrapy startproject project_name (project_name 必须以字母开头,只能包含字母.数字以及下划线<undersco ...

  2. Scrapy爬取小说简单逻辑

    Scrapy爬取小说简单逻辑 一 准备工作 1)安装Python 2)安装PIP 3)安装scrapy 4)安装pywin32 5)安装VCForPython27.exe ........... 具体 ...

  3. 小说免费看!python爬虫框架scrapy 爬取纵横网

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 风,又奈何 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  4. 以豌豆荚为例,用 Scrapy 爬取分类多级页面

    本文转载自以下网站:以豌豆荚为例,用 Scrapy 爬取分类多级页面 https://www.makcyun.top/web_scraping_withpython17.html 需要学习的地方: 1 ...

  5. scrapy 爬取纵横网实战

    前言 闲来无事就要练练代码,不知道最近爬取什么网站好,就拿纵横网爬取我最喜欢的雪中悍刀行练手吧 准备 python3 scrapy 项目创建: cmd命令行切换到工作目录创建scrapy项目  两条命 ...

  6. Scrapy爬取美女图片 (原创)

    有半个月没有更新了,最近确实有点忙.先是华为的比赛,接着实验室又有项目,然后又学习了一些新的知识,所以没有更新文章.为了表达我的歉意,我给大家来一波福利... 今天咱们说的是爬虫框架.之前我使用pyt ...

  7. 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...

  8. scrapy爬取西刺网站ip

    # scrapy爬取西刺网站ip # -*- coding: utf-8 -*- import scrapy from xici.items import XiciItem class Xicispi ...

  9. scrapy爬取豆瓣电影top250

    # -*- coding: utf-8 -*- # scrapy爬取豆瓣电影top250 import scrapy from douban.items import DoubanItem class ...

随机推荐

  1. 编程技巧│超实用 nginx 中常见的配置合集

    目录 封禁 IP 仅开放内网 负载均衡 列出文件列表 路由转发 开启 gzip 压缩 解决跨域 资源防盗链 Keepalived 提高吞吐量 HTTP 强制跳转 HTTPS 封禁 IP 通过 deny ...

  2. 平衡树——splay 三

    前文链接: 平衡树--splay 一 - yi_fan0305 - 博客园 (cnblogs.com) 平衡树--splay 二 - yi_fan0305 - 博客园 (cnblogs.com) 再补 ...

  3. Java开发学习(十六)----AOP切入点表达式及五种通知类型解析

    一.AOP切入点表达式 对于AOP中切入点表达式,总共有三个大的方面,分别是语法格式.通配符和书写技巧. 1.1 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法 切入点表达式:要进行增 ...

  4. php数组和对象相互转换

    function arrayToObject($e){ if( gettype($e)!='array' ) return; foreach($e as $k=>$v){ if( gettype ...

  5. Mpvue1.0+Python3.7+Django2.0.4实现微信小程序的支付功能

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_112 其实微信支付有很多种形式,刷脸,扫码,APP支付,小程序支付等,这边只说明小程序支付的实现,不过原理上都大同小异. 首先,需 ...

  6. WebGPU 导入[2] - 核心概念与重要机制解读

    目录 1. 核心概念 ① 适配器和设备 ② 缓冲.纹理.采样器 ③ 绑定组 ④ 着色器与管线 ⑤ 编码器与队列 2. 重要机制 ① 缓冲映射机制 ② 时间线 1. 核心概念 这部分不会详细展开,以后写 ...

  7. 循环结构——while、do-while、for循环

    1.while循环 语法格式: while(条件判断){ 循环体 } 解释: (1)关键字while后的小括号中的内容时循环条件. (2)循环条件是一个布尔表达式,它的值为布尔类型 "真&q ...

  8. 活动回顾|Apache DolphinScheduler x Pulsar 在线 Meetup

    关于 Apache DolphinScheduler: " Apache DolphinScheduler(Incubating) 是一个分布式去中心化.易扩展的可视化工作流任务调度系统,致 ...

  9. 论文翻译:2020_Lightweight Online Noise Reduction on Embedded Devices using Hierarchical Recurrent Neural Networks

    论文地址:基于分层递归神经网络的嵌入式设备轻量化在线降噪 引用格式:Schröter H, Rosenkranz T, Zobel P, et al. Lightweight Online Noise ...

  10. iOS越狱进度,越狱工具,一篇文章搞定

    最新的 iOS 越狱状态 iOS 15.0 – 16.0 Beta 目前无法越狱, Cheyote Jailbreak 正在开发中. iOS 14.6 -> 14.8 目前在某些较新的设备(A1 ...