LinkExtractor()的参数设置及使用示例
LinkExtractor是Scrapy框架提供的用于提取链接的工具类。它可以方便地从HTML文本或Response对象中提取出指定规则的链接。
LinkExtractor的参数如下:
1. allow:接受一个正则表达式或正则表达式列表,用于匹配可以提取的URL。只有匹配到的URL才会被提取出来。
2. deny:接受一个正则表达式或正则表达式列表,用于匹配不需要提取的URL。匹配到的URL将被忽略,不会被提取。
3. allow_domains:接受一个域名或域名列表,用于只提取在指定域名下的URL。
4. deny_domains:接受一个域名或域名列表,用于忽略在指定域名下的URL。
5. restrict_xpaths:接受一个XPath表达式或XPath表达式列表,用于在指定的XPath表达式下提取URL。
6. restrict_css:接受一个CSS选择器或CSS选择器列表,用于在指定的CSS选择器下提取URL。
7. restrict_text:接受一个正则表达式或正则表达式列表,用于匹配包含指定文本的链接文本。
下面是LinkExtractor的使用示例:
import scrapy
from scrapy.linkextractors import LinkExtractor
class MySpider(scrapy.Spider):
name = 'myspider'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com']
rules = (
Rule(LinkExtractor(allow=r'/page/'), callback='parse_page', follow=True),
)
def parse_page(self, response):
# 在这个回调函数中处理提取出来的链接
pass
在上面的示例中,首先导入了scrapy和LinkExtractor。然后定义了一个名为MySpider的爬虫类,继承自scrapy.Spider类。
接着,定义了爬虫名称和允许的域名allowed_domains,以及起始URL列表start_urls。这些用于指定爬虫的基本信息。
然后,定义了一个rules列表,其中包含了一个Rule对象。这个Rule对象用于定义链接提取的规则。在这里,使用LinkExtractor来提取URL,使用正则表达式r'/page/'来匹配URL中包含'/page/'的链接。
最后,定义了一个回调函数parse_page用于处理提取出来的链接,在这个函数中可以编写具体的处理逻辑。
以上就是LinkExtractor的参数设置及使用示例。通过合理设置参数,可以方便地提取出符合规则的链接,从而用于进一步的爬取和处理。
