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编程中对文件和存储器的读写示例
Jan 25 Python
Django框架的使用教程路由请求响应的方法
Jul 03 Python
python实现linux下抓包并存库功能
Jul 18 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
在Python中append以及extend返回None的例子
Jul 20 Python
Python API自动化框架总结
Nov 12 Python
使用Python实现画一个中国地图
Nov 23 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
Python Django 后台管理之后台模型属性详解
Apr 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
php中字符串和正则表达式详解
2014/10/23 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
JavaScript数值转换的三种方式总结
2014/07/31 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
关于vue中 $emit的用法详解
2018/04/12 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
[49:05]OG vs Newbee 2019DOTA2国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python字符串常用方法
2018/06/14 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python的常见矩阵运算(小结)
2019/08/07 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
金融管理专业求职信
2014/07/10 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
PHP设计模式(观察者模式)
2021/07/07 PHP