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的@property装饰器的用法
Apr 28 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
python使用opencv读取图片的实例
Aug 17 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
对python打乱数据集中X,y标签对的方法详解
Dec 14 Python
ubuntu 16.04下python版本切换的方法
Jun 14 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
python机器学习实现决策树
Nov 11 Python
flask框架url与重定向操作实例详解
Jan 25 Python
详解Python 中的容器 collections
Aug 17 Python
python实现不同数据库间数据同步功能
Feb 25 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
smarty实例教程
2006/11/19 PHP
php URL验证正则表达式
2011/07/19 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
php关联数组快速排序的方法
2015/04/17 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
写的htc的数据表格
2007/01/20 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
Python 常用string函数详解
2016/05/30 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Python字典底层实现原理详解
2019/12/18 Python
深入剖析webstorage[html5的本地数据处理]
2016/07/11 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
合作意向协议书范本
2014/03/31 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
2014年工人工作总结
2014/11/25 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS