在哪里学习scrapy SgmlLinkExtractor?

时间:2013-03-27 03:27:44

标签: python scrapy

对不起,我是python和scrapy的新手,试图通过反复试验来学习它们。

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

我正在尝试删除其内容始终位于story.html的网站,链接格式如下:

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

* note 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的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

试试这个

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

但我建议您仅使用/description/\d+/story\.html此部件,因为它的独特性足以抓取类别

在规则中我们传递了正则表达式,所以您只需要学习regex,就有大量online regex tester工具可供使用