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实现的解析crontab配置文件代码
Jun 30 Python
Python命令行参数解析模块optparse使用实例
Apr 13 Python
利用Tkinter(python3.6)实现一个简单计算器
Dec 21 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
pytorch 自定义卷积核进行卷积操作方式
Dec 30 Python
python中resample函数实现重采样和降采样代码
Feb 25 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
浅析matlab中imadjust函数
Feb 27 Python
Python函数默认参数常见问题及解决方案
Mar 26 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
python爬虫可以爬什么
Jun 16 Python
LyScript实现绕过反调试保护的示例详解
Aug 14 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
IE中createElement需要注意的一个问题
2010/07/13 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
21行Python代码实现拼写检查器
2016/01/25 Python
python相似模块用例
2016/03/04 Python
在Python 中同一个类两个函数间变量的调用方法
2019/01/31 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
python的数学算法函数及公式用法
2020/11/18 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
思想品德课教学反思
2014/02/10 职场文书
高校教师岗位职责
2014/03/18 职场文书
保外就医申请书范文
2015/08/06 职场文书
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
银行求职信范文
2019/05/13 职场文书
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL