Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例


Posted in Python onApril 11, 2020

本文实例讲述了Python Scrapy框架:通用爬虫之CrawlSpider用法。分享给大家供大家参考,具体如下:

步骤01: 创建爬虫项目

scrapy startproject quotes

步骤02: 创建爬虫模版

scrapy genspider -t quotes quotes.toscrape.com

步骤03: 配置爬虫文件quotes.py

import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

class Quotes(CrawlSpider):
 # 爬虫名称
  name = "get_quotes"
  allow_domain = ['quotes.toscrape.com']
  start_urls = ['http://quotes.toscrape.com/']

# 设定规则
  rules = (
    # 对于quotes内容页URL,调用parse_quotes处理,
    # 并以此规则跟进获取的链接
    Rule(LinkExtractor(allow=r'/page/\d+'), callback='parse_quotes', follow=True),
    # 对于author内容页URL,调用parse_author处理,提取数据
    Rule(LinkExtractor(allow=r'/author/\w+'), callback='parse_author')
  )

# 提取内容页数据方法
  def parse_quotes(self, response):
    for quote in response.css(".quote"):
      yield {'content': quote.css('.text::text').extract_first(),
          'author': quote.css('.author::text').extract_first(),
          'tags': quote.css('.tag::text').extract()
          }
 # 获取作者数据方法

  def parse_author(self, response):
    name = response.css('.author-title::text').extract_first()
    author_born_date = response.css('.author-born-date::text').extract_first()
    author_bron_location = response.css('.author-born-location::text').extract_first()
    author_description = response.css('.author-description::text').extract_first()

    return ({'name': name,
         'author_bron_date': author_born_date,
         'author_bron_location': author_bron_location,
         'author_description': author_description
         })

步骤04: 运行爬虫

scrapy crawl quotes

更多相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家基于Scrapy框架的Python程序设计有所帮助。

Python 相关文章推荐
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
Linux系统(CentOS)下python2.7.10安装
Sep 26 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python必须了解的35个关键词
Jul 16 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
【超详细】八大排序算法的各项比较以及各自特点
Mar 31 Python
Python实现AI换脸功能
Apr 10 #Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 #Python
Jupyter notebook运行Spark+Scala教程
Apr 10 #Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 #Python
jupyter notebook清除输出方式
Apr 10 #Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 #Python
jupyter notebook参数化运行python方式
Apr 10 #Python
You might like
用PHP产生动态的影像图
2006/10/09 PHP
php 判断数组是几维数组
2013/03/20 PHP
如何使用Strace调试工具
2013/06/03 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
nginx 设置多个站跨域
2021/03/09 Servers
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
angular 服务随记小结
2019/05/06 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
Python字符串逐字符或逐词反转方法
2015/05/21 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
Python xlwt模块使用代码实例
2020/06/10 Python
python获取linux系统信息的三种方法
2020/10/14 Python
python 元组和列表的区别
2020/12/30 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
实习老师离校感言
2014/02/03 职场文书
初中同学聚会感言
2014/02/11 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
贫困证明怎么写
2015/06/16 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书