爬虫入门教程-Spider
Spider
爬虫是定义如何抓取某个网站(或一组网站)的类,包括如何执行抓取(即关注链接)以及如何从其网页中提取结构化数据(即抓取项目)。换句话说,Spider是您定义用于为特定网站(或在某些情况下,一组网站)抓取和解析网页的自定义行为的位置。
对于爬虫,循环经历这样的事情:
您首先生成用于抓取第一个URL的初始请求,然后指定要使用从这些请求下载的响应调用的回调函数。
第一个执行的请求通过调用 start_requests()(默认情况下)Request为在start_urls和中指定的URL生成的parse方法获取, 并且该方法作为请求的回调函数。
在回调函数中,您将解析响应(网页),并返回带有提取的数据,Item对象, Request对象或这些对象的可迭代的对象。这些请求还将包含回调(可能是相同的),然后由Scrapy下载,然后由指定的回调处理它们的响应。
在回调函数中,您通常使用选择器来解析页面内容 (但您也可以使用BeautifulSoup,lxml或您喜欢的任何机制),并使用解析的数据生成项目。
最后,从爬虫返回的项目通常将持久存储到数据库(在某些项目管道中)或使用Feed导出写入文件。
即使这个循环(或多或少)适用于任何种类的爬虫,有不同种类的默认爬虫捆绑到Scrapy中用于不同的目的。我们将在这里谈论这些类型。
class scrapy.spiders.Spider
这是最简单的爬虫,每个其他爬虫必须继承的爬虫(包括与Scrapy捆绑在一起的爬虫,以及你自己写的爬虫)。它不提供任何特殊功能。它只是提供了一个默认start_requests()实现,它从start_urlsspider属性发送请求,并parse 为每个结果响应调用spider的方法。
name
定义此爬虫名称的字符串。爬虫名称是爬虫如何由Scrapy定位(和实例化),因此它必须是唯一的。但是,没有什么能阻止你实例化同一个爬虫的多个实例。这是最重要的爬虫属性,它是必需的。
如果爬虫抓取单个域名,通常的做法是在域后面命名爬虫。因此,例如,抓取的爬虫mywebsite.com通常会被调用 mywebsite。
注意
在Python 2中,这必须是ASCII。
allowed_domains
允许此爬虫抓取的域的字符串的可选列表,指定一个列表可以抓取,其它就不会抓取了。
start_urls
当没有指定特定网址时,爬虫将开始抓取的网址列表。
custom_settings
运行此爬虫时将从项目宽配置覆盖的设置字典。它必须定义为类属性,因为设置在实例化之前更新。
有关可用内置设置的列表,请参阅: 内置设置参考。
crawler
此属性from_crawler()在初始化类后由类方法设置,并链接Crawler到此爬虫实例绑定到的对象。
Crawlers在项目中封装了很多组件,用于单个条目访问(例如扩展,中间件,信号管理器等)。有关详情,请参阅抓取工具API。
settings
运行此爬虫的配置。这是一个 Settings实例,有关此主题的详细介绍,请参阅设置主题。
logger
用Spider创建的Python记录器name。您可以使用它通过它发送日志消息,如记录爬虫程序中所述。
from_crawler(crawler, args,* kwargs )
是Scrapy用来创建爬虫的类方法。
您可能不需要直接覆盖这一点,因为默认实现充当方法的代理,init()使用给定的参数args和命名参数kwargs调用它。
尽管如此,此方法 在新实例中设置crawler和settings属性,以便以后可以在爬虫程序中访问它们。
参数:
crawler(Crawlerinstance) - 爬虫将绑定到的爬虫
args(list) - 传递给init()方法的参数
kwargs(dict) - 传递给init()方法的关键字参数
start_requests()
此方法必须返回一个可迭代的第一个请求来抓取这个爬虫。
有了start_requests(),就不写了start_urls,写了也没有用。
默认实现是:start_urls,但是可以复写的方法start_requests。
爬虫入门教程-Spider相关推荐
- python3爬虫入门教程-总算懂得python3.4爬虫入门教程
Python是一款功能强大的脚本语言,具有丰富和强大的库,重要的是,它还具有很强的可读性,易用易学,非常适合编程初学者入门.以下是小编为你整理的python3.4爬虫入门教程 环境配置:下载Pytho ...
- python很全的爬虫入门教程
python很全的爬虫入门教程 一.爬虫前的准备工作 首先,我们要知道什么是爬虫 1.什么是网络爬虫? 网络爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁 ...
- Scrapy爬虫入门教程五 Selectors(选择器)
Scrapy爬虫入门教程一 安装和基本使用 Scrapy爬虫入门教程二 官方提供Demo Scrapy爬虫入门教程三 命令行工具介绍和示例 Scrapy爬虫入门教程四 Spider(爬虫) Scrap ...
- python爬虫入门教程(三):淘女郎爬虫 ( 接口解析 | 图片下载 )
2019/10/28更新 网站已改版,代码已失效(其实早就失效了,但我懒得改...)此博文仅供做思路上的参考 代码使用python2编写,因已失效,就未改写成python3 爬虫入门系列教程: pyt ...
- Python爬虫入门教程:博客园首页推荐博客排行的秘密
1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...
- 推荐一部python教程_Python爬虫入门教程:博客园首页推荐博客排行的秘密
1. 前言 虽然博客园注册已经有五年多了,但是最近才正式开始在这里写博客.(进了博客园才知道这里面个个都是人才,说话又好听,超喜欢这里...)但是由于写的内容都是软件测试相关,热度一直不是很高.看到首 ...
- python爬虫入门教程--优雅的HTTP库requests(二)
requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive.连接池.Cookie持久化.内容自动解压.HTTP代理.SSL认证等很多特性,下面这篇文章主要给大家介绍 ...
- 爬虫python入门_python爬虫入门教程有哪些?适合的只有这三个
python爬虫是现在包括以后一种很重要的获取数据的方式. 当然,也因为网络爬虫本身也很有趣,所以很多人了解过一次爬虫后,就产生了浓厚的兴趣. 但是,想学python爬虫的话,应该看什么python爬 ...
- Python爬虫入门教程导航帖
转载:梦想橡皮擦 https://blog.csdn.net/hihell/article/details/86106916 **Python爬虫入门教程导航,目标100篇** 本系列博客争取把爬虫入 ...
最新文章
- 如何利用离散Hopfield神经网络进行高校科研能力评价(1)
- matlab练习程序(自适应中值滤波RAMF)
- 内存四域,变量声明和定义,寄存器,c内嵌汇编,auto,堆栈,常量,静态变量
- ClassLoader的常用方法及获取方法
- phpstudy mysql端口_完美解决phpstudy安装后mysql无法启动(无需删除原数据库,无需更改任何配置,无需更改端口)直接共存...
- I - Interesting Permutation Gym - 102394I(排列组合)
- hdu 1811Rank of Tetris (并查集 + 拓扑排序)
- Android项目中最火最常用的优秀开源项目(很有用)
- 【5G落地】首批5G商用牌照正式颁发!5G和AI并肩前行,会带来下一次的工业革命吗?...
- ubuntu安装cuda(转精华)
- aiohttp保存MySQL_python链家网高并发异步爬虫asyncio+aiohttp+aiomysql异步存入数据
- 课文电子计算机与多媒体减写,课文电子计算机与多媒体关系介绍
- 拖延心理学读后感ppt
- 步步为营-92-空格变成问号的怪问题
- php路径跳转include,PHP中include路径的解决方法汇总
- FileZilla 使用技巧
- ps考证是电脑改卷吗
- python使用pip离线安装库(本机环境)
- 为什么要ROS2而不是对ROS1修修补补?
- 《自控力》第七章读书笔记