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 ...
随机推荐
- iOS-textfield控制光标开始位置
// UIView *paddingView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.wi ...
- 使用python或robotframework调multipart/form-data接口上传文件
这几天调一个multipart/form-data类型的接口,遇到点小阻碍.之前同事有使用urllib库写了个类似的方法实现,比较长,想要改的时候发现不太好使.在网上查找发现用requests库做这个 ...
- pycharm操作Django基础部分
原文地址:https://www.cnblogs.com/feixuelove1009/p/5823135.html
- 已经安装了VRay但3dmax的材质编辑器里没有VRay材质的解决过程
已经安装了VRay但3dmax的材质编辑器里没有VRay材质怎么办? 众所周知,vray是一款很好用的渲染器,但是安装过程和使用当中总会出现各种问题.昨天我就遇到了,捣鼓半天终于解决,分享给大家自己的 ...
- leetcode1130 Minimum Cost Tree From Leaf Values
思路: 区间dp. 实现: class Solution { public: int mctFromLeafValues(vector<int>& arr) { int n = a ...
- 基于MSP430F2618的程控电压源
基于MSP430F2618的程控电压源 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电路设计 ...
- 最新 创蓝253java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.创蓝253等10家互联网公司的校招Offer,因为某些自身原因最终选择了创蓝253.6.7月主要是做系统复习.项目复盘.Le ...
- alertmanager的web页面显示UTC时间的问题
1.http://192.168.1.144:9093/#/alerts 显示的告警时间是UTC时间 2.脚本的变量 {"status":"success"}[ ...
- Word、Excel、PPT 2016、2013、2010、2007 没有保存或断电导致文件丢失怎么恢复?
1. 前言 没有保存文档还能恢复吗?死机.断电.蓝屏导致来不及保存文档,还能恢复吗?答案当然是可以的!Office中本身就有恢复文档的功能,可以帮助我们最大化的挽回损失. Office2013与Off ...
- python实现文件搜索工具(简易版)
在python学习过程中有一次需要进行GUI 的绘制, 而在python中有自带的库tkinter可以用来简单的GUI编写,于是转而学习tkinter库的使用. 学以致用,现在试着编写一个简单的磁文件 ...