目标网站: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. from Crypto.Cipher import AES报错

    python 在 Windows下使用AES时要安装的是pycryptodome 模块   pip install pycryptodome python 在 Linux下使用AES时要安装的是pyc ...

  2. error: cannot open .git/FETCH_HEAD: Permission denied

    可能原因:该操作的执行者对该目录没有写权限 解决:1.类Unix平台,使用chown将目录改为自己: 2.Windows平台,取消只读选项,给everyone用户所有权限:

  3. Scala学习第一天(Hello world)

    一.Scala介绍 1. Scala概念 Scala 是 Scalable Language 的简写,是一门多范式的编程语言 联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于 ...

  4. hive SQL 初学者题目,实战题目 字符串函数,日期拼接,开窗函数。。。。

    sql:Hive实现按照指定格式输出每七天的消费平均数输出格式:2018-06-01~2018-06-07 12.29...2018-08-10~2018-08-16 80.67 答案:-- 1.先将 ...

  5. Schur不等式(舒尔不等式)

    舒尔( Schur \texttt{Schur} Schur)不等式1 具体内容 Schur \texttt{Schur} Schur 不等式: x , y , z x,y,z x,y,z 为非负实数 ...

  6. 【Azure 事件中心】Azure Event Hub 新功能尝试 -- 异地灾难恢复 (Geo-Disaster Recovery)

    问题描述 关于Event Hub(事件中心)的灾备方案,大多数就是新建另外一个备用的Event Hub,当主Event Hub出现不可用的情况时,就需要切换到备Event Hub上. 而在切换的过程中 ...

  7. SSH远程登录:两台或多台服务器之间免密登录设置

    有两台(或多台)同局域网的服务器A:192.168.2.21,B:192.168.2.25.让A,B这两台服务器之间能两两互相免密登录,并且每台服务器都可以自我免密登录(自我免密登录即:ssh loc ...

  8. python3学习笔记之字符串

    字符串 1.一个个字符组成的有序的序列,是字符的集合: 2.使用单引号.双引号.三引号引住的字符序列 3.字符串是不可变对象 4.python3起,字符串就是Unicode类型: 字符串特殊举例: 不 ...

  9. Clang-format-12安装

    ubu18 clang-format安装 1.更新源 wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - ...

  10. 记一次Linux server偶发CPU飙升问题的跟进与解决

    背景 进入6月后,随着一个主要功能版本api的上线,服务端的QPS翻了一倍,平时服务器的CPU使用稳定在30%上下,高峰期则在60%上下,但是偶尔会有单台机器出现持续数分钟突然飙到90%以上,导致大量 ...