Scrapy Spider


目录

  • Scrapy Spider
  • 前言
  • 一、如何运作
  • 二、scrapy.Spider
    • 属性
    • 方法
  • 三、创建Spider
  • 总结

前言

在scrapy中,spiders是定义如何抓取站点的类,里面包含了抓取的域名,已经如何抓取解析。是我们爬取数据时主要操作的文件。


一、如何运作

首先我们要知道他是如何运作的。

  1. 默认情况下,首先调用start_requests()获取初始的URL,,并将返回的数据通过回调函数parse()处理。我们可以重写star_requests,用我们自定义的方法进行处理。
  2. 回调函数通过选择器解析网页,解析结果可以分为两类,一类是数据部分,另一类就是需要继续爬取的url。所以可以返回item对象(进行后期处理储存),或者request对象(再次提交请求,指定其他回调函数处理)
  3. 循环(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相关推荐

  1. Scrapy 框架之 ——crawl Spiders

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012017783/article/details/76169807 </div>< ...

  2. Scrapy和MongoDB的应用

    Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取Web站点并从页面中提取结构化的数据.它最吸引人的地方在于任何人都可以根据需求方便的修改. MongoDB是现下非常 ...

  3. Scrapy 学习笔记(-)

    Scrapy Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...

  4. Scrapy爬取IT之家

    创建项目 scrapy startproject ithome 创建CrawSpider scrapy genspider -t crawl IT ithome.com items.py 1 impo ...

  5. python爬虫天气实例scrapy_python爬虫之利用scrapy框架抓取新浪天气数据

    scrapy中文官方文档:点击打开链接 Scrapy是Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘 ...

  6. Scrapy框架CrawlSpider类爬虫实例

    CrawlSpider类爬虫中: rules用于定义提取URl地址规则,元祖数据有顺序 #LinkExtractor 连接提取器,提取url地址  #callback 提取出来的url地址的respo ...

  7. 【Python】Scrapy爬虫实战(豆瓣电影 Top 250)

    今天一天都在弄Scrapy,虽然爬虫起来真的很快,很有效率,但是......捣鼓了一天 豆瓣电影 Top 250:https://movie.douban.com/top250 安装好的scrapy ...

  8. Scrapy框架中的crawlspider爬虫

    1 crawlspider是什么 在spider中要寻找下一页的url地址或者内容的url地址,想想是否有简单的方法省略寻找url的过程? 思路: 从response中提取所有的满足规则的url地址 ...

  9. 安装python爬虫scrapy踩过的那些坑和编程外的思考

    '转载地址:http://www.cnblogs.com/rwxwsblog/p/4557123.html' 这些天应朋友的要求抓取某个论坛帖子的信息,网上搜索了一下开源的爬虫资料,看了许多对于开源爬 ...

  10. 爬虫-scrapy的中间件

    scrapy的中间件 下载中间件 作用: 处于引擎和下载器之间,因此该中间件可以批量拦截整个工程中发起所有的请求和响应 拦截请求可进行的操作 进行代理IP request.meta['proxy'] ...

最新文章

  1. C言语选择排序算法及代码
  2. Bean的依赖注入的数据类型
  3. 您自己的MicroProfile Config来源
  4. mysql手机号11_我用不小心用 mysql 的int(11) 存了 手机号,数据都有问题,有办法恢复么?...
  5. 服务器开机忘记密码怎么修改,服务器忘记mysql密码怎么修改?
  6. AOSP6.0.1 launcher3入门篇-解析DeviceProject.java及相关文件
  7. 【转】TYVJ 1695 计算系数(NOIP2011 TG DAY2 1)
  8. 在创业之路上,每个人都会有很多的老师
  9. K3CLOUD表关联
  10. JAVA NumberFormat和DecimalFormat小结
  11. 毕业半年,点滴在心中
  12. 利用arduino给PCB800099液晶驱动板烧录程序
  13. 常用期刊、会议的简称缩写(深度学习图像处理领域)
  14. wsl2中安装QGC
  15. python求特征值以及特征向量,并且输出最小特征值对应的特征向量
  16. 2021-03-15我的博客
  17. 这些优秀的 Spring Cloud 开源软件,你知道的有几个?
  18. 【Redis】分布式限流与Redis实现限流的四种方式(Redis专栏启动)
  19. python爬虫实战(四):selenium爬虫抓取阿里巴巴采购批发商品
  20. 基础知识【H5新增知识1】

热门文章

  1. 标准盒模型与IE盒模型的区别
  2. 云计算概念的基本介绍,云计算的特点主要有哪些?
  3. drupal mysql hash密码_drupal7 密码重置
  4. USB启动盘制作工具精选 2012版
  5. Elasticsearch 的 Task 停止方法
  6. 求2+22+222+2222+.....的N项之和
  7. 【原创】小时候特别喜欢玩的强手棋游戏
  8. 计算机应用一些常用技巧
  9. vue element select 下拉加载更多
  10. 遗传算法和神经网络结合在税收中的运用