上一篇爬虫中,https://blog.csdn.net/ai_64/article/details/90166089

代码太多,有近100行代码,还有复杂的正则表达式。

光是构造正则表达式就已经让人抓狂了。

本文使用scrapy爬虫框架,主要优点有三:

1.不用构造复杂的正则表达式。

2.爬取效率更高。

3.代码逻辑更优更简洁。

项目git地址:

git@github.com:cuanboy/scrapyTest.git

本文参考了以下资料

urllib2库的基本使用
https://blog.csdn.net/kingov/article/details/80173251

传智播客黑马社区
http://bbs.itheima.com/thread-344264-1-1.html

scrapy菜鸟教程
https://www.runoob.com/w3cnote/scrapy-detail.html

# -*- coding: utf-8 -*-
"""
语言版本:
python:3.7
scrapy:1.6
功能:不使用正则表达式,改用scrapy爬取段子.
"""
import scrapyclass DuanZiSpider(scrapy.Spider):name = "duanSpider"allowed_domains = ["duanziwang.com"]start_urls = ['http://duanziwang.com/category/经典段子/']def parse(self, response):duanzi_list = response.css('article')  # 提取首页所有笑话,保存至变量duanzi_listfor viv in duanzi_list:  # 循环获取每一条笑话里面的:标题、内容title = viv.css('.post-title a::text').extract_first()  # 提取笑话标题contents = viv.css('.post-content p::text').extract()  # 提取笑话内容text = ''.join(contents)# text = text.encode('UTF-8','ignore')# text = text.encode('gb2312','ignore')"""接下来进行写文件操作,储存在一个txt文档里面"""file_name = 'happy.txt'  # 定义文件名,如:happy.txtf = open(file_name, "a+", encoding='utf-8')  # “a+”以追加的形式f.write('标题:' + str(title))f.write('\n')  # ‘\n’ 表示换行f.write(str(text))f.write('\n-------\n')f.close()next_page = response.css('.next::attr(href)').extract_first()  # css选择器提取下一页链接# print("!!!!!!The page is:" + str(next_page))if next_page is not None:  # 判断是否存在下一页"""相对路径如:/page/1urljoin能把相对路径替我们转换为绝对路径,也就是加上文件开头设置的域名最终next_page为:http://host/page/2/        """next_page = response.urljoin(next_page)"""scrapy.Request()第一个参数:下一页链接,第二个参数为内容回调处理函数,这里是parse函数。不断的爬取,直到不存在下一页"""yield scrapy.Request(next_page, callback=self.parse)

网络段子爬虫程序加强版-Scrapy框架相关推荐

  1. Python爬虫5.3 — scrapy框架spider[Request和Response]模块的使用

    Python爬虫5.3 - scrapy框架spider[Request和Response]模块的使用 综述 Request对象 scrapy.Request()函数讲解: Response对象 发送 ...

  2. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  3. python爬虫入门(六) Scrapy框架之原理介绍

    Scrapy框架 Scrapy简介 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬 ...

  4. pythonscrapy爬虫_零基础写python爬虫之使用Scrapy框架编写爬虫

    网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻 ...

  5. java启动scrapy爬虫,爬虫入门之Scrapy 框架基础功能(九)详解

    Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非 ...

  6. PYTHON 爬虫笔记十一:Scrapy框架的基本使用

    Scrapy框架详解及其基本使用 scrapy框架原理 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中. 其最初是为 ...

  7. python爬虫之使用Scrapy框架编写爬虫

    转自:http://www.jb51.net/article/57183.htm 前面的文章我们介绍了Python爬虫框架Scrapy的安装与配置等基本资料,本文我们就来看看如何使用Scrapy框架方 ...

  8. python爬虫学习笔记-scrapy框架(1)

    简介 什么是框架? 所谓的框,其实说白了就是一个[项目的半成品],该项目的半成品需要被集成了各种功能且具有较强的通用性. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名, ...

  9. 爬虫基础分享Scrapy框架流程图与安装

    从头开发一个爬虫程序是一项烦琐的工作,为了避免因制造轮子而消耗大量时间,在实际应用中我们可以选择使用一些优秀的爬虫框架,使用框架可以降低开发成本,提高程序质量,让我们能够专注于业务逻辑.所以,我们一起 ...

最新文章

  1. python函数模块讲解_课堂练习讲解_模块化函数封装
  2. linux内核源码剖析 博客,【Linux内存源码分析】页面迁移
  3. Anaconda安装第三方包(whl文件)
  4. 微软:今年要让Office 2007寿终正寝
  5. 输在学历的起跑线上?没关系,10本书助你技能爆表升职加薪
  6. 0和5(51Nod-1433)
  7. vue项目中npm install初始化报错以及‘cross-env’ 不是内部或外部命令问题
  8. mysql 事务 游标_mysql之——存储过程 + 游标 + 事务
  9. wos 文献被引_全世界最权威的文献检索工具,这6个检索技巧必须要掌握!
  10. 财务有必要学python吗-财务人要学Python吗?
  11. json转Java_在线JSON转Java实体类—在线工具
  12. 微信小程序 短信验证码
  13. 中国Linux界五大高手
  14. linux ntpdate同步错误,差一个小时的问题
  15. Material Design Lite组件之徽章
  16. Unity发布PC平台exe的窗口花样(WindowsAPI、捕获关闭事件、隐藏窗口标题栏、隐藏最小化最大化关闭按钮等等)
  17. 核心频率个加速频率_今年前 9 个月全工序实现负能炼钢,本钢板材炼钢厂绿色清洁生产频率加快...
  18. 如何查看win 10 无线密码
  19. 阿里专家直击前端盛会JSConf2017_Day2:见证Moment.js精彩分享
  20. 阅文JAVA后端笔试

热门文章

  1. 第六届云安全联盟大中华区大会:数字技术引领数字安全生态建设,成功举办!
  2. 日记 2016年8月9日(周二)
  3. 计算机操作怎么移动文件夹,win10系统实现快速移动文件或文件夹的操作方法
  4. 量子化学计算和最新分子动力学模拟计算
  5. 远程控制之原理和实战
  6. C++plus 2.6
  7. Uniapp集成熊猫播放器
  8. jQuery实现的上下滚动公告栏
  9. 小心手机迅雷成流量炸弹
  10. system函数阻塞问题