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
Scrapy框架: 通用爬虫之CrawlSpider的更多相关文章
- Scrapy框架: 通用爬虫之SitemapSpider
步骤01: 创建项目 scrapy startproject cnblogs 步骤02: 编写items.py # -*- coding: utf-8 -*- # Define here the mo ...
- Scrapy框架: 通用爬虫之CSVFeedSpider
步骤01: 创建项目 scrapy startproject csvfeedspider 步骤02: 使用csvfeed模版 scrapy genspider -t csvfeed csvdata g ...
- Scrapy框架: 通用爬虫之XMLFeedSpider
步骤01: 创建项目 scrapy startproject xmlfeedspider 步骤02: 使用XMLFeedSpider模版创建爬虫 scrapy genspider -t xmlfeed ...
- 关于使用scrapy框架编写爬虫以及Ajax动态加载问题、反爬问题解决方案
Python爬虫总结 总的来说,Python爬虫所做的事情分为两个部分,1:将网页的内容全部抓取下来,2:对抓取到的内容和进行解析,得到我们需要的信息. 目前公认比较好用的爬虫框架为Scrapy,而且 ...
- Scrapy 框架,爬虫文件相关
Spiders 介绍 由一系列定义了一个网址或一组网址类如何被爬取的类组成 具体包括如何执行爬取任务并且如何从页面中提取结构化的数据. 简单来说就是帮助你爬取数据的地方 内部行为 #1.生成初始的Re ...
- 09 Scrapy框架在爬虫中的使用
一.简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.它集成高性能异步下载,队列,分布式,解析,持久化等. Scrapy 是基于twisted框架开发而来,twisted是一个 ...
- 一个scrapy框架的爬虫(爬取京东图书)
我们的这个爬虫设计来爬取京东图书(jd.com). scrapy框架相信大家比较了解了.里面有很多复杂的机制,超出本文的范围. 1.爬虫spider tips: 1.xpath的语法比较坑,但是你可以 ...
- 利用scrapy框架进行爬虫
今天一个网友问爬虫知识,自己把许多小细节都忘了,很惭愧,所以这里写一下大概的步骤,主要是自己巩固一下知识,顺便复习一下.(scrapy框架有一个好处,就是可以爬取https的内容) [爬取的是杨子晚报 ...
- 群辉6.1.7安装scrapy框架执行爬虫
只针对会linux命令,会python的伙伴, 使用环境为: 群辉ds3615xs 6.1.7 python3.5 最近使用scrapy开发了一个小爬虫,因为很穷没有服务器可已部署. 所以打起了我那台 ...
随机推荐
- Vue小白篇 - Vue介绍
Vue ?啥是Vue?能干嘛? vue 的介绍 Vue 是一套用于构建用户界面的 渐进式框架 ,与其它大型框架不同的是, Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层 前端三大框 ...
- ApacheHttpServer出现启动报错:the requested operation has failed解决办法
转自:https://www.jb51.net/article/21004.htm 原因一:80端口占用 例如IIS,另外就是迅雷.我的apache服务器就是被迅雷害得无法启用! 原因二:软件冲突 装 ...
- java.net.ProtocolException: Exceeded stated content-length of: '13824' bytes
转自:https://blog.csdn.net/z69183787/article/details/18967927 1. 原因: 因为weblogic会向response中写东西造成的,解决方式是 ...
- 使用Unsafe来实现自定义锁
1.使用Unsafe类 import sun.misc.Unsafe; class UnsafePackage { private static Unsafe unsafe; static { try ...
- repquota - 文件系统配额的汇总
SYNOPSIS(总览) repquota [ -vugs ] filesystem... repquota [ -avugs ] DESCRIPTION(描述) repquota 显示与配额文件相关 ...
- 246-基于TI DSP TMS320C6678、Altera FPGA的CPCI处理卡
基于TI DSP TMS320C6678.Altera FPGA的CPCI处理卡 1.板卡概述 本板卡由我公司自主研发,基于CPCI架构,符合CPCI2.0标准,采用两片TI DSP TMS320C ...
- 脚本_备份mysql
#!bin/bash#功能:备份mysql数据 #作者:liusingbon#定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签)#dbname(需要备份的数据库 ...
- Linux --忘记root密码/su: Authentication failure
如果忘记了root用户的密码,或者su root的时候,提示:su: Authentication failure 那么,可以通过以下的方式来重新设置密码,而后,再尝试,那么就可以顺利su root了 ...
- Linux中检查内存使用情况的命令
Linux操作系统包含大量工具,所有这些工具都可以帮助您管理系统.从简单的文件和目录工具到非常复杂的安全命令,在Linux上没有太多不能做的事情.而且,虽然普通桌面用户可能不需要在命令行熟悉这些工具, ...
- wait与sleep区别?
wait与sleep区别? 对于sleep()方法,该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线 ...