Scrapy Spiders
Scrapy Spider
目录
- Scrapy Spider
- 前言
- 一、如何运作
- 二、scrapy.Spider
- 属性
- 方法
- 三、创建Spider
- 总结
前言
在scrapy中,spiders是定义如何抓取站点的类,里面包含了抓取的域名,已经如何抓取解析。是我们爬取数据时主要操作的文件。
一、如何运作
首先我们要知道他是如何运作的。
- 默认情况下,首先调用
start_requests()
获取初始的URL,,并将返回的数据通过回调函数parse()
处理。我们可以重写star_requests,用我们自定义的方法进行处理。 - 回调函数通过选择器解析网页,解析结果可以分为两类,一类是数据部分,另一类就是需要继续爬取的url。所以可以返回item对象(进行后期处理储存),或者request对象(再次提交请求,指定其他回调函数处理)
- 循环(2)直到完成所有请求,或者解析完所有数据
二、scrapy.Spider
所有spider的基类,所有其他spider都必须继承它(包括自己编写的蜘蛛)。
属性
name:定义爬虫的名称,必须的。通常以网站名称命名。例如baidu.com,我么可以定义为baiduallowed_domains:允许爬取的域名,是一个列表。例如:['baidu.com']start_urls:爬取的起始页面custom_settings:一个字典。运行这个爬虫时,需要覆盖项目设置中的全局设置,也就是这个爬虫会使用这里写的设置,不会使用settings中默认的。此设置要在初始化前更新,所以必须定义成类变量。
方法
start_requests():该方法只会调用一次。从start_urls中获取url,并返回迭代器,生成请求。如果需要对其实url处理,例如需要post请求,可以进行重写parse():默认start_requests()的回调函数。我们需要重写里面的内容以完成我们的需求
三、创建Spider
下面我们创建一个爬虫文件
在命令行中:scrapy genspider baidu baidu.com
下面是生成的文件:
import scrapyclass BaiduSpider(scrapy.Spider):name = 'baidu'allowed_domains = ['baidu.com']start_urls = ['http://baidu.com/']def parse(self, response):"""编写爬取逻辑"""pass
我们可以发现这个爬虫类就是继承自scrapy.Spider。
总结
本节介绍了spider的一些基础知识,我们要熟练掌握,毕竟日后我们写项目时,我们创建新的spider文件,都是基于Spider这个基类的,爬取逻辑啥的都要写在这里面
官方文档:Spider
Scrapy Spiders相关推荐
- Scrapy 框架之 ——crawl Spiders
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012017783/article/details/76169807 </div>< ...
- Scrapy和MongoDB的应用
Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取Web站点并从页面中提取结构化的数据.它最吸引人的地方在于任何人都可以根据需求方便的修改. MongoDB是现下非常 ...
- Scrapy 学习笔记(-)
Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...
- Scrapy爬取IT之家
创建项目 scrapy startproject ithome 创建CrawSpider scrapy genspider -t crawl IT ithome.com items.py 1 impo ...
- python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据
scrapy中文官方文档:点击打开链接 Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘 ...
- Scrapy框架CrawlSpider类爬虫实例
CrawlSpider类爬虫中: rules用于定义提取URl地址规则,元祖数据有顺序 #LinkExtractor 连接提取器,提取url地址 #callback 提取出来的url地址的respo ...
- 【Python】Scrapy爬虫实战(豆瓣电影 Top 250)
今天一天都在弄Scrapy,虽然爬虫起来真的很快,很有效率,但是......捣鼓了一天 豆瓣电影 Top 250:https://movie.douban.com/top250 安装好的scrapy ...
- Scrapy框架中的crawlspider爬虫
1 crawlspider是什么 在spider中要寻找下一页的url地址或者内容的url地址,想想是否有简单的方法省略寻找url的过程? 思路: 从response中提取所有的满足规则的url地址 ...
- 安装python爬虫scrapy踩过的那些坑和编程外的思考
'转载地址:http://www.cnblogs.com/rwxwsblog/p/4557123.html' 这些天应朋友的要求抓取某个论坛帖子的信息,网上搜索了一下开源的爬虫资料,看了许多对于开源爬 ...
- 爬虫-scrapy的中间件
scrapy的中间件 下载中间件 作用: 处于引擎和下载器之间,因此该中间件可以批量拦截整个工程中发起所有的请求和响应 拦截请求可进行的操作 进行代理IP request.meta['proxy'] ...
最新文章
- C言语选择排序算法及代码
- Bean的依赖注入的数据类型
- 您自己的MicroProfile Config来源
- mysql手机号11_我用不小心用 mysql 的int(11) 存了 手机号,数据都有问题,有办法恢复么?...
- 服务器开机忘记密码怎么修改,服务器忘记mysql密码怎么修改?
- AOSP6.0.1 launcher3入门篇-解析DeviceProject.java及相关文件
- 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)
- 在创业之路上,每个人都会有很多的老师
- K3CLOUD表关联
- JAVA NumberFormat和DecimalFormat小结
- 毕业半年,点滴在心中
- 利用arduino给PCB800099液晶驱动板烧录程序
- 常用期刊、会议的简称缩写(深度学习图像处理领域)
- wsl2中安装QGC
- python求特征值以及特征向量,并且输出最小特征值对应的特征向量
- 2021-03-15我的博客
- 这些优秀的 Spring Cloud 开源软件,你知道的有几个?
- 【Redis】分布式限流与Redis实现限流的四种方式(Redis专栏启动)
- python爬虫实战(四):selenium爬虫抓取阿里巴巴采购批发商品
- 基础知识【H5新增知识1】