gpt4 book ai didi

python - 我如何在 scrapy python 中编写我的自定义链接提取器

转载 作者:太空狗 更新时间:2023-10-29 22:27:15 44 4
gpt4 key购买 nike

我想编写我的自定义 scrapy 链接提取器来提取链接。

scrapy 文档说它有两个内置的提取器。

http://doc.scrapy.org/en/latest/topics/link-extractors.html

但是我还没有看到任何关于如何通过自定义链接提取器实现的代码示例,有人可以给出一些编写自定义链接提取器的示例吗?

最佳答案

这是自定义链接提取器的例子

class RCP_RegexLinkExtractor(SgmlLinkExtractor):
"""High performant link extractor"""

def _extract_links(self, response_text, response_url, response_encoding, base_url=None):
if base_url is None:
base_url = urljoin(response_url, self.base_url) if self.base_url else response_url

clean_url = lambda u: urljoin(base_url, remove_entities(clean_link(u.decode(response_encoding))))
clean_text = lambda t: replace_escape_chars(remove_tags(t.decode(response_encoding))).strip()

links_text = linkre.findall(response_text)
urlstext = set([(clean_url(url), clean_text(text)) for url, _, text in links_text])

return [Link(url, text) for url, text in urlstext]

用法

rules = (
Rule(
RCP_RegexLinkExtractor(
allow=(r"epolls/2012/president/[a-z]{2}/[a-z]+_romney_vs_obama-[0-9]{4}\.html"),
# Regex explanation:
# [a-z]{2} - matches a two character state abbreviation
# [a-z]* - matches a state name
# [0-9]{4} - matches a 4 number unique webpage identifier

allow_domains=('realclearpolitics.com',),
),
callback='parseStatePolls',
# follow=None, # default
process_links='processLinks',
process_request='processRequest',
),
)

看这里https://github.com/jtfairbank/RCP-Poll-Scraper

关于python - 我如何在 scrapy python 中编写我的自定义链接提取器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815347/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com