CrawlSpider ---> 通用爬虫 项目流程
通用爬虫
通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。
不扯没用的,上干货!
创建项目:
cmd 命令: scrapy startproject 项目名
创建
cmd 命令:scrapy genspider -t crawl 爬虫名 允许爬取得域名
在spider文件 主爬虫文件.py中 替换 start_urls 为要爬取的网址! 在rules中进行指定规则:
ps:规则制定时选中的必须是标签,或正则匹配连接地址(可跳转性)
rules = (
Rule(LinkExtractor(allow=r'/sort/?st=product&sort=A\[A-Z]'), follow=True), # 参数: allow 正则选择要满足的需求特点 deny :一定不取得特点
Rule(LinkExtractor(restrict_xpaths="//a[text()='»']"), follow=True), # 参数 restrict_xpaths 用xpath 反向选择或手写xpath取要满足的需求特点
Rule(LinkExtractor(restrict_xpaths="/html/body/div[4]/div/div[2]/div[4]/div/div[1]/div/a"), callback='parse_data',follow=False), # 拷贝xpath选择要满足的需求特点
)
ps:
LinkExtractor() 链接提取器 对选中连接或标签进行操作
follow=True 同位置 继续 提取需求标签
follow=False 停止 或 不在 同位置继续提取需求标签
clllback='一个函数名' follow=True 时 没有太大必要使用,除非该页有需求值 follow=False 时 说明你到了目标数据位置 这是把请求的响应抛给了该函数 而到了函数,就可以利用xpath取值了,封装进item里就可以了,这里item不需要你实例化了item= {}就可以了 通用爬虫帮你做了 最后yield item 主爬虫就写完了。 然后 --》 ???
然后的是就和普通scrapy一样了,
settings.py 里配置 在之前写的博文里有,自行去查看
item.py 里 设置需求数据字段
pipelines.py 对数据队列 进行操作 Ps:
了解不深,个人看法:
其实理解这个通用爬虫不难:
就一句话:
需要注意的点就在rules这块对吧,我的理解就是,这是在宏观意义上给你要提取输得位置进行制定规则,可以理解为定位,所有满足特点的位置就是我需求数据存放的位置!
好了 就到这里! 简单吧 !
其他的? 自己悟把!哈哈哈!
CrawlSpider ---> 通用爬虫 项目流程的更多相关文章
- Spider-Python爬虫之聚焦爬虫与通用爬虫的区别
为什么要学习爬虫? 学习爬虫,可以私人订制一个搜索引擎. 大数据时代,要进行数据分析,首先要有数据源. 对于很多SEO从业者来说,从而可以更好地进行搜索引擎优化. 什么是网络爬虫? 模拟客户端发送网络 ...
- Scrapy框架: 通用爬虫之CrawlSpider
步骤01: 创建爬虫项目 scrapy startproject quotes 步骤02: 创建爬虫模版 scrapy genspider -t quotes quotes.toscrape.com ...
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫
前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...
- 爬虫(十八):Scrapy框架(五) Scrapy通用爬虫
1. Scrapy通用爬虫 通过Scrapy,我们可以轻松地完成一个站点爬虫的编写.但如果抓取的站点量非常大,比如爬取各大媒体的新闻信息,多个Spider则可能包含很多重复代码. 如果我们将各个站点的 ...
- python爬虫王者荣耀高清皮肤大图背景故事通用爬虫
wzry-spider python通用爬虫-通用爬虫爬取静态网页,面向小白 基本上纯python语法切片索引,少用到第三方爬虫网络库 这是一只小巧方便,强大的爬虫,由python编写 主要实现了: ...
- Python即时网络爬虫项目启动说明
作为酷爱编程的老程序员,实在按耐不下这个冲动,Python真的是太火了,不断撩拨我的心. 我是对Python存有戒备之心的,想当年我基于Drupal做的系统,使用php语言,当语言升级了,推翻了老版本 ...
- C语言Linix服务器网络爬虫项目(二)项目设计和通过一个http请求抓取网页的简单实现
我们通过上一篇了解了爬虫具体要实现的工作之后,我们分析得出的网络爬虫的基本工作流程如下: 1.首先选取一部分精心挑选的种子URL: 2.将这些URL放入待抓取URL队列: 3.从待抓取URL队列中取出 ...
- C语言Linix服务器网络爬虫项目(一)项目初衷和网络爬虫概述
一.项目初衷和爬虫概述 1.项目初衷 本人的大学毕设就是linux上用c写的一个爬虫,现在我想把它完善起来,让他像一个企业级别的项目.为了重复发明轮子来学习轮子的原理,我们不使用第三方框架(这里是说的 ...
- Scrapy框架——CrawlSpider类爬虫案例
Scrapy--CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 此案例采用的是CrawlSpider类实现爬虫. 它是Spider的派生类,Spide ...
随机推荐
- Saltstack把网卡从ens160修改成eth0
手动修改参考:https://www.cnblogs.com/minseo/p/8521873.html salt目录结构为 files/grub GRUB_TIMEOUT=5 GRUB_DISTRI ...
- maven中央仓库的配置在哪里?superpom是什么?中央仓库查找三方包
maven的superpom 每个项目都默认继承的pom 位置 $M2_HOME/lib/maven-model-builder.jar 使用tar -xvf解压后,grep -r central 搜 ...
- Vue + GraphQL初试
基本用法 GraphQL概述 GraphQL基本语法特性 GraphQL类型系统 GraphQL类型系统内置基础类型 GraphQL类型系统内置修饰符 GraphQL工作原理 GraphQL执行过程 ...
- Flask框架(2)--编写简单的用户注册--登录场景
为了更好的理解web前后端的工作业务逻辑:本笔记记录用flask框架编写的一个最初级的代码实现简单的用户注册,登录场景: 初次进入首页,提示--游客,欢迎参观,有登录和注册选项, 登录成功后的用户,会 ...
- 转 Linux平台卸载MySQL总结
如何在Linux下卸载MySQL数据库呢? 下面总结.整理了一下Linux平台下卸载MySQL的方法. MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries).R ...
- WebStorm+Chrome调试Vue步骤
在调试时请 注意 : 在WebStorm中启动调试时,WebStorm会根据你设置的url,自动打开新的Chrome浏览器进程访问这个设置的url,而且这个浏览器页面和你平常看到的浏览器差异会比较大, ...
- Linux 线程取消(pthread_cancel)
基本概念 pthread_cancel调用并不等待线程终止,它只提出请求.线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint).取消 ...
- Redis 常用命令学四:有序集合类型命令
1.增加元素,修改存在元素的分数 127.0.0.1:6379> zadd score 99 a 88 b 66 c (integer) 3 127.0.0.1:6379> ZADD sc ...
- TypeScript 迭代器(iterator)和生成器(generator)
⒈迭代器(iterator) 1.可迭代性 当一个对象实现了Symbol.iterator属性时,我们认为它是可迭代的. 一些内置的类型如 Array,Map,Set,String,Int32Arra ...
- 多线程(5) — JDK的并发容器
JDK提供了一些高效的并发容器,下面介绍几个 ConcurrentHashMap:这是个高效的并发HashMap,可以理解为一个线程安全的HashMap. CopyOnWriteArrayList:这 ...