对不起,我是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
的正确方法是什么?
答案 0 :(得分:2)
试试这个
Rule(SgmlLinkExtractor(allow=(r'category1/description/\d+/story\.html',)), callback='parse_item', follow=True)
但我建议您仅使用/description/\d+/story\.html
此部件,因为它的独特性足以抓取类别
在规则中我们传递了正则表达式,所以您只需要学习regex,就有大量online regex tester工具可供使用