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入门教程
Feb 08 Python
python的正则表达式re模块的常用方法
Mar 09 Python
python多线程扫描端口示例
Jan 16 Python
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
Python 爬虫模拟登陆知乎
Sep 23 Python
解决Python requests 报错方法集锦
Mar 19 Python
python rsa 加密解密
Mar 20 Python
python将字典内容存入mysql实例代码
Jan 18 Python
Python生成器的使用方法和示例代码
Mar 04 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
python类共享变量操作
Sep 03 Python
Python常遇到的错误和异常
Nov 02 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
日本十大惊悚动漫
2020/03/04 日漫
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
微信小程序常见页面跳转操作简单示例
2019/05/01 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
原生js实现无缝轮播图
2020/01/11 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python文件处理
2016/02/29 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python绘制条形图方法代码详解
2017/12/19 Python
python3实现windows下同名进程监控
2018/06/21 Python
python实现多张图片拼接成大图
2019/01/15 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
国外的一些J2EE面试题一
2012/10/13 面试题
小学生美德少年事迹材料
2014/08/24 职场文书
留学推荐信(中英文版)
2015/03/26 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL