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 08 Python
python实现的DES加密算法和3DES加密算法实例
Jun 03 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
Python3匿名函数用法示例
Jul 25 Python
Python在图片中插入大量文字并且自动换行
Jan 02 Python
Pandas 缺失数据处理的实现
Nov 04 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
python中的线程threading.Thread()使用详解
Dec 17 Python
python如何控制进程或者线程的个数
Oct 16 Python
python 合并多个excel中同名的sheet
Jan 22 Python
Python实战之OpenCV实现猫脸检测
Jun 26 Python
Python 中 Shutil 模块详情
Nov 11 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 高性能书写
2010/12/11 PHP
PHP的异常处理类Exception的使用及说明
2012/06/13 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
Python和php通信乱码问题解决方法
2014/04/15 Python
python机器学习之神经网络(三)
2017/12/20 Python
python之super的使用小结
2018/08/13 Python
python之列表推导式的用法
2019/11/29 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
土木工程毕业生自荐信
2013/11/12 职场文书
先进工作者获奖感言
2014/02/08 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
年终考核实施方案
2014/05/26 职场文书
机械机修工岗位职责
2014/08/03 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
2014年教学工作总结
2014/11/13 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
杨善洲电影观后感
2015/06/04 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书