Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
作者:hankleo 发布时间:2023-04-09 05:17:42
标签:Python,Scrapy框架,爬虫,CrawlSpider
本文实例讲述了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程序设计有所帮助。
来源:https://www.cnblogs.com/hankleo/p/11872497.html
0
投稿
猜你喜欢
- 1.按列取、按索引/行取、按特定行列取import numpy as npfrom pandas import DataFrameimpor
- 本文实例讲述了mysql show操作。分享给大家供大家参考,具体如下:SHOW CHARACTER SET显示所有可用的字符集SHOW C
- int connectDb() { EXEC SQL BEGIN DECLARE SECTION; char username[20]; c
- 下面是十个Python中很有用的贴士和技巧。其中一些是初学这门语言常常会犯的错误。注意:假设我们都用的是Python 31. 列表推导式你有
- 本文实例讲述了Python实现的对一个数进行因式分解操作。分享给大家供大家参考,具体如下:在数学中,我们可能会对一个数进行因式分解,如何用P
- 思路:在腾讯疫情数据网站F12解析网站结构,使用Python爬取当日疫情数据和历史疫情数据,分别存储到details和history两个my
- 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:create table SUser( ID bigint unsig
- 1. 用户必须在几秒钟知道网站是做什么的。注意力是因特网上最有价值的货币。 如果访问者无法在几秒钟之内得知你的网站的方向,他很有可能转而访问
- 本文实例为大家分享了python实现二叉树的遍历具体代码,供大家参考,具体内容如下代码:# -*- coding: gb2312 -*- c
- 缘由最近在做公司的一个点餐H5项目需要前端动态计算用户选的商品的总价(单价*数量)和购物车的总价格时发现关于 JavaScript 浮点数计
- 本文实例讲述了python实现telnet客户端的方法。分享给大家供大家参考。具体如下:python实现的telnet客户端程序,pytho
- 目录:1.安装python32.安装flask3.简单的服务器代码编写4.设置FLASK_APP路径并启动服务器程序1.安装python3p
- k近邻算法的介绍k近邻算法是一种基本的分类和回归方法,这里只实现分类的k近邻算法。k近邻算法的输入为实例的特征向量,对应特征空间的点;输出为
- 刚刚解决了这个问题,现在记录下来问题描述当使用lambda层加入自定义的函数后,训练没有bug,载入保存模型则显示Nonetype has
- 从4年之前什么都不知道,到现在对代码的一网情深,感谢无忧的兄弟姐妹的帮助,感谢无忧给我们提供了这么好的交流平台。现将最近几天捣鼓的asp封装
- 第一步 去高德地图开放平台申请密钥 高德地图开放平台第二部 在vue-cli项目目录结构 里面多了config文件夹和
- 现在使用CSS网页布局,摒弃了传统Table表格布局的模式,但是Table表格在网页中还是少不了的,因为当需要输出表格类数据时,就应该使用表
- 将数据库中的信息存储至XML文件中:save.asp<!-- #include file="adovbs
- 1 squeeze(): 去除size为1的维度,包括行和列。至于维度大于等于2时,squeeze()不起作用。行、例:>>&g
- Node.js应用不需要经过编译过程,可以直接把源代码拷贝到部署机上执行,确实比C++、Java这类编译型应用部署方便。然而,Node.js