CrawlSpider爬虫的使用

本文详细解析了Scrapy爬虫框架中的Rule规则参数,包括allow、deny、allow_domains等,以及如何定义parse_start_url方法来处理起始URL响应。通过实例展示了如何使用xpath提取链接,并将其转换为绝对路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. rule规则:

rule规则的参数

allow:满足括号中“正则表达式”的值会被提取,如果为空,则全部匹配。 
deny:与这个正则表达式(或正则表达式列表)不匹配的URL一定不提取。 
allow_domains:会被提取的链接的domains。 
deny_domains:一定不会被提取链接的domains。 
restrict_xpaths:使用xpath表达式,和allow共同作用过滤链接。还有一个类似的restrict_css 

classscrapy.contrib.spiders.Rule(link_extractorcallback=Nonecb_kwargs=Nonefollow=Noneprocess_links=Noneprocess_request=None)

cb_kwargs 包含传递给回调函数的参数(keyword argument)的字典。

follow 是一个布尔(boolean)值,指定了根据该规则从response提取的链接是否需要跟进。 如果 callback 为None, follow 默认设置为 True ,否则默认为 False 。

process_links 是一个callable或string(该spider中同名的函数将会被调用)。 从link_extractor中获取到链接列表时将会调用该函数。该方法主要用来过滤。

process_request 是一个callable或string(该spider中同名的函数将会被调用)。 该规则提取到每个request时都会调用该函数。该函数必须返回一个request或者None。 (用来过滤request)

 

 

2. def parse_start_url(self,response):

当start_url的请求返回时,该方法被调用。 该方法分析最初的返回值并必须返回一个 Item对象或者 一个 Request 对象或者 一个可迭代的包含二者对象。

例:补全相应中的链接   相对链接变成绝对链接。

def parse_start_url(self, response):
         urls = response.xpath('//div[@class="article"]//a/@href').extract()
         for url in urls:
             if 'https' not in url: # 去除多余的链接
                 url = response.urljoin(url) # 补全
                 print(url)
                 yield scrapy.Request(url)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值