crawl spider

crawlspider

使用
scrapy genspider -t crawl 文件名字 网址

crawlspider是什么?
也是一个spider,是Spider的一个子类,所以其功能要比Spider要强大
多的一个功能是:提取链接的功能,根据一定的规则,提取指定的链接

链接提取器
LinkExtractor(
allow=xxx, # 正则表达式,要(*)
deny=xxx, # 正则表达式,不要这个
restrict_xpaths=xxx, # xpath路径(*)
restrict_css=xxx, # 选择器(*)
deny_domains=xxx, # 不允许的域名
)

通过正则提取链接
links = LinkExtractor(allow=r‘/movie/\?page=\d‘)
将所有包含这个正则表达式的href全部获取到返回
links.extract_links(response)进行查看提取到的链接
【注】将重复的url去除掉
通过xpath提取
links = LinkExtractor(restrict_xpaths=‘//ul[@class="pagination pagination-sm"]/li/a‘)
通过css提取
links = LinkExtractor(restrict_css=‘.pagination > li > a‘)

原文地址:https://www.cnblogs.com/airapple/p/9195467.html

时间: 2024-10-07 05:30:10

crawl spider的相关文章

用crawl spider爬取起点网小说信息

起点作为主流的小说网站,在防止数据采集反面还是做了准备的,其对主要的数字采用了自定义的编码映射取值,想直接通过页面来实现数据的获取,是无法实现的. 单独获取数字还是可以实现的,通过requests发送请求,用正则去匹配字符元素,并再次匹配其映射关系的url,获取到的数据通过font包工具解析成字典格式,再做编码匹配,起点返回的编码匹配英文数字,英文数字匹配阿拉伯数字,最后拼接,得到实际的数字字符串,但这样多次发送请求,爬取效率会大大降低.本次集中爬取舍弃了爬取数字,选择了较容易获取的评分数字.评

Scrapy系列教程(3)------Spider(爬虫核心,定义链接关系和网页信息抽取)

Spiders Spider类定义了怎样爬取某个(或某些)站点.包含了爬取的动作(比如:是否跟进链接)以及怎样从网页的内容中提取结构化数据(爬取item). 换句话说.Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方. 对spider来说.爬取的循环类似下文: 以初始的URL初始化Request,并设置回调函数. 当该request完成下载并返回时,将生成response,并作为參数传给该回调函数. spider中初始的request是通过调用 start_requests

scrapy spider官方文档

Spiders Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方. 对spider来说,爬取的循环类似下文: 以初始的URL初始化Request,并设置回调函数. 当该request下载完毕并返回时,将生成response,并作为参数传给该回调函数. spider中初始的request是通过调用 start_requests

scrapy采集列表页的另一种方式

又是采集绿色下载站的最新软件,又是采用另一种方式(前两种是采用正则和xpath),呵呵 感觉有点像孔乙已的茴字有几种写法了 这回用CrawlSpider,Rule来配合采集 这次不用生成许多start_urls列表项了,可以按规则来自动读取,贴核心代码 # -*- coding: utf-8 -*- from scrapy.contrib.spiders import CrawlSpider,Rule from scrapy.selector import Selector from scrap

爬虫框架Scrapy之CrawlSpiders

CrawlSpiders 通过下面的命令可以快速创建 CrawlSpider模板 的代码: scrapy genspider -t crawl tencent tencent.com 上一个案例中,我们通过正则表达式,制作了新的url作为Request请求参数,现在我们可以换个花样... class scrapy.spiders.CrawlSpider 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页,而CrawlSpider类定义了一些规则(rule)来

Python.Scrapy.14-scrapy-source-code-analysis-part-4

Scrapy 源代码分析系列-4 scrapy.commands 子包 子包scrapy.commands定义了在命令scrapy中使用的子命令(subcommand): bench, check, crawl, deploy, edit, fetch, genspider, list, parse, runspider, settings, shell, startproject, version, view. 所有的子命令模块都定义了一个继承自 类ScrapyCommand的子类Comman

使用Discuz!自带参数防御CC攻击以及原理,修改Discuz X 开启防CC攻击后,不影响搜索引擎收录的方法

这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.com/thread-8644-1-1.html CC攻击确实是很蛋疼的一种攻击方式,Discuz!的配置文件中已经有了一个自带的减缓CC攻击的参数,在配置文件config.inc.php中: 1 $attackevasive = 0;             // 论坛防御级别,可防止大量的非正常请求

Discuz封锁蜘蛛最有效的方法

闲来无事翻代码,发现一个好东西,Discuz设计者考虑到了有些流氓搜索引擎不遵守roborts.txt,于是设计了一个NOROBOT变量,当这个变量为true 的时候,定义中的搜索引擎都会无法访问,默认比如在post.php里面开头就定义了 define('NOROBOT', TRUE); 这样就可以有效防止蜘蛛乱爬了 但是至于像viewthread.php,forumdisplay.php(还有其他.比如,feed页面等)默认就是要给虫子爬的,所以,这一句话没有,如果要封锁蜘蛛,在这些页面中加

Scrapy的shell命令(转)

scrapy python MrZONT                        2015年08月29日发布 推荐                                                                                                                              1 推荐 收藏