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 爬虫学习笔记之多线程爬虫
Sep 21 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
python读取中文txt文本的方法
Apr 12 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
Python 面试中 8 个必考问题
Nov 16 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
Python使用20行代码实现微信聊天机器人
Jun 05 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
Python使用windows设置定时执行脚本
Nov 12 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 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
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
js实现从右向左缓缓浮出网页浮动层广告的方法
2015/05/09 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
2018/07/13 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
vue使用video插件vue-video-player的示例
2020/10/03 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python如何读取、写入JSON数据
2020/07/28 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
大学毕业感言100字
2014/02/03 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
项目经理岗位职责
2015/01/31 职场文书
教师节主持词开场白
2015/05/29 职场文书
爱国电影观后感
2015/06/19 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python