大宗师是著名网络小说作家蛇从革的系列作品“宜昌鬼事”之一,在天涯论坛具有超级高的访问量。这个长篇小说于2015年3月17日开篇,并于2016年12月29日大结局,期间每天有7万多读者阅读。如果在天涯社区直接阅读的话,会被很多读者留言干扰,如图

于是,我写了下面的代码,从天涯社区该小说的第一篇开始依次爬取每一页,提取作者“蛇从革”发过的文字并保存成为记事本文档。当然,代码还可以再优化一下,例如有时候作者就发了一句话“今天没有了”,按说这样的话可以过滤掉,大家可以自行修改。

在运行代码之前,首先要正确安装Python的爬虫框架scrapy,这个扩展库在Python 2.7.x中表现一直不错,现在也支持Python 3.5.x以及更新版本,可以使用pip直接进行安装,但是scrapy依赖的某些扩展库对高版本Python支持并不是很好,在使用pip安装scrapy的过程中如果某个依赖的扩展库安装失败,可以到网上下载相应的whl文件进行安装,重复上面的过程,知道出现“Successfully installed...”这样的提示。

接下来就是创建爬虫项目了,进入命令提示符(cmd)环境,切换至Python安装目录的scripts目录,执行命令scrapy startproject xiaoshuo创建爬虫项目xiaoshuo,进入该目录,然后编写Python程序文件\spiders\spiderYichangGuishi.py(内容就是下面的代码),然后在命令提示符环境中执行命令scrapy crawl spiderYichangGuishi,稍等大概3分钟左右即可爬取小说全文并生成记事本文档。

当然,在编写爬虫代码之前,需要对目标网站进行分析一下,打开要小说首页,右键,单击“查看源代码”,然后分析网页结构,如图,红色标记处是比较重点的地方。

\spiders\spiderYichangGuishi.py代码如下:

import scrapy

class MySpider(scrapy.spiders.Spider):

#爬虫的名字,每个爬虫必须有不同的名字

name = 'spiderYichangGuishi'

#要爬取的小说首页,第一篇

start_urls = ['http://bbs.tianya.cn/post-16-1126849-1.shtml']

#对每个要爬取的页面,会自动调用下面这个方法

def parse(self, response):

#用来存放当前页中的小说正文

content = []

for i in response.xpath('//div'):

#作者蛇从革的天涯账号

if i.xpath('@_hostid').extract()==['13357319']:

for j in i.xpath('div//div'):

#提取文本

c = j.xpath('text()').extract()

#过滤干扰符号

g = lambda x:x.strip('\n\r\u3000').replace('<br>', '\n').replace('|', '')

c = '\n'.join(map(g, c)).strip()

content.append(c)

with open('result.txt', 'a+', encoding='utf8') as fp:

fp.writelines(content)

#获取下一页网址并继续爬取

url = response.url

d = url[url.rindex('-')+1:url.rindex('.')]

next_url = 'http://bbs.tianya.cn/post-16-1126849-{0}.shtml'.format(int(d)+1)

try:

yield scrapy.Request(url=next_url, callback=self.parse)

except:

pass

爬取到的小说大概就是下面的样子了

更多Python技术文章请关注微信公众号“Python小屋”阅读。

Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文相关推荐

  1. Python 采用Scrapy爬虫框架爬取豆瓣电影top250

    scrapy 简介 在此,默认已经安装好Scrapy,如果没有安装可以到scrapy 官网下载安装. 注意: 在安装Scrapy之前首先需要安装一下python第三方库:(安装方法并不在本文讲解范围, ...

  2. Python Scrapy爬虫框架爬取51job职位信息并保存至数据库

    Python Scrapy爬虫框架爬取51job职位信息并保存至数据库 -------------------------------- 版权声明:本文为CSDN博主「杠精运动员」的原创文章,遵循CC ...

  3. Python Scrapy 爬虫框架爬取推特信息及数据持久化!整理了我三天!

    最近要做一个国内外新冠疫情的热点信息的收集系统,所以,需要爬取推特上的一些数据,然后做数据分类及情绪分析.作为一名合格的程序员,我们要有「拿来主义精神」,借助别人的轮子来实现自己的项目,而不是从头搭建 ...

  4. 使用scrapy爬虫框架爬取慕课网全部课程信息

    爬取的链接: http://www.imooc.com/course/list 爬取的内容: 课程链接, 课程的图片url, 课程的名称, 学习人数, 课程描述 1.安装scrapy模块 pip in ...

  5. Python之Scrapy爬虫实战--爬取妹子图

    1.前言 反正闲着也是闲着,不如来学习啊! 2.关键代码 新建项目 不会的同学可参考我的另一篇博文,这里不再赘述:Python之Scrapy爬虫实战–新建scrapy项目 这里只讲一下几个关键点,完整 ...

  6. 用Scrapy爬虫框架爬取食品论坛数据并存入数据库

    这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...

  7. scrapy爬虫框架爬取词语、医疗问答

    源码请看: https://github.com/liuluyeah/baidudic 转载于:https://blog.51cto.com/9283734/2092321

  8. Scrapy 爬虫实战-爬取字幕库

    Scrapy 爬虫实战-爬取字幕库 1.首先,创建Scrapy框架 创建工程 scrapy startproject zimuku创建爬虫程序 cd zimuku scrapy genspider z ...

  9. Python集成scrapy和selenium爬取苏宁图书

    Python集成scrapy和selenium爬取苏宁图书 环境:python3.6 pycharm2018.1.3 前言 本人渣渣一枚,为爬虫苏宁图书获取数据,将获得的数据保存在MangoDB中,现 ...

最新文章

  1. 【网络安全】身份验证凭证为何如此重要?
  2. TopN算法与排行榜
  3. muduo源代码分析--Reactor模式在muduo中的使用
  4. matlab2018安装摄像头驱动以及如何调用摄像头
  5. macOS的Fn键实用技巧
  6. Zend Framework学习之验证ing
  7. python变量定义模糊_刚接触python,对变量还有点模糊,下面的代码帮忙看下
  8. java正则表达式的语法详解及常用方法
  9. A slightly scary story on Amazons
  10. CodeForces - 272C Dima and Staircase (线段树区间更新)
  11. Java攻略之API
  12. 图像传感器的市场状况和主要厂商
  13. 函数与极限(2)—极限
  14. 这里是Python爬虫的起点,抢占资源啦(Python学习教程)
  15. 软件开发常用工具汇总百度云网盘
  16. 怎么使用Git远程删除某个历史提交记录
  17. Linux运维,到底如何入门?常用linux操作指令盘点!
  18. 关于Android、关于刷机
  19. MYSQL - DML
  20. 微信中调用地图导航 可唤醒高德百度地图app(vue)

热门文章

  1. js读取html元素scr,了解一下JavaScript中的DOM编程
  2. java微信支付异步通知_Java中微信支付退款异步通知解码
  3. java信号量源代码_Java信号量Semaphore原理及代码实例
  4. mysql用大白话解释_大白话解释给小白如何看别人的源码(一)数据库部分
  5. 安卓暗黑模式软件_安卓微信暗黑模式(深色模式)怎么开启?手机什么条件才支持?...
  6. 闪屏页新手引导页面主页判断跳转的逻辑
  7. 打印倍数_英语精读:3d打印的速度有望提高到100倍
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的网上商城系统
  9. python基础学习(四)if判断语句
  10. iOS开发-CocoaPods使用详细说明