page contents

Scrapy链接提取器

正如名称本身所示,链接提取器是用于使用 scrapy.http.Response 对象从网页中提取链接的对象。在Scrapy中,有内置提取器,如 scrapy.linkextractors import LinkExtractor 。通过实现简单的界面...

正如名称本身所示,链接提取器是用于使用 scrapy.http.Response 对象从网页中提取链接的对象。在Scrapy中,有内置提取器,如 scrapy.linkextractors import LinkExtractor 。通过实现简单的界面,您可以根据自己的需求定制自己的链接提取器。

每个链接提取器都有一个名为 extract_links 的公共方法,其中包含一个Response对象并返回一个scrapy.link.Link对象列表。您只能实例化链接提取程序一次,并多次调用extract_links方法以提取具有不同响应的链接。CrawlSpider类使用链接提取器和一组规则,其主要目的是提取链接。

内置链接提取器参考

通常,链接提取器与Scrapy分组,并在scrapy.linkextractors模块中提供。默认情况下,链接提取器将是LinkExtractor,它的功能与LxmlLinkExtractor相同

from scrapy.linkextractors import LinkExtractor

LxmlLinkExtractor

class scrapy.linkextractors.lxmlhtml.LxmlLinkExtractor(allow = (), deny = (),
   allow_domains = (), deny_domains = (), deny_extensions = None, restrict_xpaths = (),
   restrict_css = (), tags = ('a', 'area'), attrs = ('href', ),
   canonicalize = True, unique = True, process_value = None)

 LxmlLinkExtractor 是一个高度推荐的链接提取,因为它具有方便的过滤选项,它是用来与LXML强大的HTMLParser的。attachments-2020-01-6agdEEjJ5e254b7799233.png


实例

以下代码用于提取链接 -

<a href = "javascript:goToPage('../other/page.html'); return false">Link text</a>

process_value中可以使用以下代码函数 -

def process_value(val):
   m = re.search("javascript:goToPage\('(.*?)'", val)
   if m:
      return m.group(1)
  • 发表于 2020-01-20 14:41
  • 阅读 ( 758 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1471 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章