Python Scrapy爬虫(上)

Python Scrapy爬虫

预备知识:

1、Scrapy框架:是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架。

2、Scrapy去重原理:Scrapy本身自带有一个中间件。scrapy源码中可以找到一个dupefilters.py去重器,需要将dont_filter设置为False开启去重,默认是True没有开启去重

3、指纹去重:对于每一个URL的请求,调度器都会根据请求得相关信息加密得到一个指纹信息,并且将该URL的指纹信息和set()集合中的指纹信息进行比对。如果set()集合中已经存在这个数据,就不在将这个Request放入队列中,如果set()集合中没有存在这个加密后的数据,就将这个Request对象放入队列中,等待被调度

4、Scrapy框架下各个模块:

  • Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等
  • Scheduler(调度器): 假设其为一个URL的优先队列,由其来决定下一个要抓取的网址是什么,同时去除重复的网址。用户可以自己的需求定制调度器
  • Downloader(下载器):用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上
  • Spider(爬虫):用户定制自己的爬虫,用于从特定的网页中提取需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接(URL),让Scrapy继续抓取下一个页面。
  • Item Pipeline(实体管道):用于处理爬虫提取的实体。主要的功能是持久化实体验证实体的有效性清除不需要的信息
  • Downloader Middlewares(下载中间件/有User_Agent、Proxy代理):可以当作是一个可以自定义扩展下载功能的组件
  • Spider Middlewares(Spider中间件):可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)

图-1 scrapy框架

原文地址:https://www.cnblogs.com/yinminbo/p/11824330.html

时间: 2024-10-08 10:28:47

Python Scrapy爬虫(上)的相关文章

Python Scrapy爬虫框架安装、配置及实践

近期研究业界安卓APP主要漏洞类型.wooyun算是国内最有名的漏洞报告平台,总结一下这上面的漏洞数据对后面测试与分析漏洞趋势有指导意义,因此写一个爬虫. 不再造轮子了,使用Python的Scrapy框架实现之. 一.安装 64位系统安装时,一定要注意Python的位数与Scrapy及其依赖库位数一致.否则各种坑爹Bug 安装32位Python 2.7 下载并安装pip(方便自动安装管理依赖库) https://pypi.python.org/pypi/pip/7.1.2 下载源码,python

阿里云WindowsServer部署python scrapy爬虫

*本文适合Python新手 准备工作: 1,一个阿里云ECS服务器实例 2,阿里云ECS服务器实例中安装好Mysql 3,本地开发机并已经写好爬虫项目 部署步骤: 一.复制本地Python环境至阿里云服务器 1,阿里云服务器上安装Anaconda(本地开发机也同样用的这个配置环境,新手适应度100,嘿嘿) 2,导出本地Python环境到文件中 #进入要导出的python环境 D:\>activate python27 #导出环境到文件中 (python27) D:\>conda env exp

Python Scrapy爬虫框架之初次使用

本案例来自小甲鱼的课程 关于Scrapy的安装网上都有方法,这里便不再叙述. 使用Scrapy抓取一个网站一共需要四个步骤: 0.创建一个Scrapy项目: 1.定义Item容器: 2.编写爬虫: 3.存储内容. 本次爬取的目标是全球最大的目录网站http://www.dmoztools.net,由于此网站数据过于庞大,我们这里只拿它的两个子网页做测试(手动捂脸) http://www.dmoztools.net/Computers/Programming/Languages/Python/Bo

python scrapy爬虫入门

Scrapy 是一个python下的网络爬虫工具,目前只有python2.x的版本. 安装 Scrapy需要的支持库比较多,安装时挺繁琐的,测试直接用easy_install 或者 pip安装会自动下载安装需要的支持库,但是因为网络或其他种种原因总是安装失败,最好还是各个安装包分开安装. 下载安装Microsoft Visual C++ 2008 Redistributable Package(注意链接是64位)  http://www.microsoft.com/en-us/download/

Python scrapy爬虫数据保存到MySQL数据库

除将爬取到的信息写入文件中之外,程序也可通过修改 Pipeline 文件将数据保存到数据库中.为了使用数据库来保存爬取到的信息,在 MySQL 的 python 数据库中执行如下 SQL 语句来创建 job_inf 数据表: CREATE TABLE job inf ( id INT (11) NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR (255), salary VARCHAR (255), company VARCHAR (255),

python - scrapy 爬虫框架(创建, 持久化, 去重, 深度, cookie)

## scrapy 依赖 twisted  - twisted 是一个基于事件循环的 异步非阻塞 框架/模块 ##  项目的创建  1. 创建 project scrapy startproject 项目名称 项目名称(项目结构) - spiders # 爬虫文件 - q.py - w.py - items.py # 持久化 - pipelines # 持久化 - middlewares.py # 中间件 - settings.py # 配置文件(爬虫) scrapy.cfg # 配置文件(部署

dota玩家与英雄契合度的计算器,python语言scrapy爬虫的使用

首发:个人博客,更新&纠错&回复 演示地址在这里,代码在这里. 一个dota玩家与英雄契合度的计算器(查看效果),包括两部分代码: 1.python的scrapy爬虫,总体思路是page->model->result,从网页中提取数据,组成有意义的数据结构,再拿这数据结构做点什么. 在这个项目中,爬虫的用处是从游久网dota数据库上抓取dota英雄和物品的数据和照片存到本地磁盘,数据存为json格式,方便在网页应用中直接使用. 2.网页应用,使用dota英雄数据.自己编写的小伙

第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中

第三百五十八节,Python分布式爬虫打造搜索引擎Scrapy精讲-将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详解 基本概念 如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定.链表,树等等数据结构都是这种思路. 但是随着集合中元素的增加,我们需要的存储空间越来越大,检索速度也越来越慢.不过世界上还有一种叫作散列表(又叫哈希表,Hash table)的数据结构.它可以通过一

第三百五十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy的暂停与重启

第三百五十三节,Python分布式爬虫打造搜索引擎Scrapy精讲-scrapy的暂停与重启 scrapy的每一个爬虫,暂停时可以记录暂停状态以及爬取了哪些url,重启时可以从暂停状态开始爬取过的URL不在爬取 实现暂停与重启记录状态 1.首先cd进入到scrapy项目里 2.在scrapy项目里创建保存记录信息的文件夹 3.执行命令: scrapy crawl 爬虫名称 -s JOBDIR=保存记录信息的路径 如:scrapy crawl cnblogs -s JOBDIR=zant/001