1

对不起,我对python和scrapy真的很陌生,试图通过反复试验来学习它们。

关于 SgmlLinkExtractor,我看到每个人(至少在这个站点上)都非常擅长找到代表正确路径的正确代码,我在哪里/如何学习?像(allow=[r'page/\d+'])orallow=[r'series-\d{1}-episode-\d{2}.']等​​等等等。

我试图刮掉一个内容总是在story.html中的网站,链接格式是这样的:

http://www.example.com/folder/category/description/1234567/story.html

*注 1234567 是一个不断变化的 7 位数字

我的起始网址是http://www.example.com/folder/

我正在尝试SgmlLinkExtractor如下使用和定义我的路径。我想包括 url 的描述部分和 7 位数字部分中的任何内容。我想确保网址以以下结尾story.html

Rule(SgmlLinkExtractor(allow=(r'category1/././story\.html',)), callback='parse_item', follow=True),

但显然/././不允许我跳过两个子级别来访问story.html

写这个的正确方法是什么SgmlLinkExtractor

4

1 回答 1

2

尝试这个

Rule(SgmlLinkExtractor(allow=(r'category1/description/\d+/story\.html',)), callback='parse_item', follow=True)

但我会建议你只使用/description/\d+/story\.html这部分,因为它的独特性足以抓取类别

在规则中我们通过正则表达式,所以你只需要学习正则表达式,有一堆在线正则表达式测试工具可用

于 2013-03-27T07:03:42.583 回答