如何在scrapy中使用正则表达式设置规则来提取网址?

时间:2013-08-08 20:03:40

标签: regex scrapy

我想在bloomberg网站上抓取与迪士尼相关的网页。网址跟随模式为

        "http://bloomberg.com/news/2013-07-08/disney-welcometohomepageofdisney"

所以,我在下面写了规则

          rules = [
    Rule(SgmlLinkExtractor(allow=('/news/*/disney*',)), follow=True),
          ]

但上述规则不能正常工作,我得到的抓取页面输出与迪士尼无关。请帮助修复此规则。

2 个答案:

答案 0 :(得分:3)

/news/*匹配/news后跟任意数量的/

正确的正则表达式是:

/news/.*/disney

答案 1 :(得分:1)

您可能需要以下正则表达式:

 /news/[^/]+/disney.*
转发的

看起来像

\/news\/[^\/]+\/disney.*
这样你会找到下一个/但不是任何东西。

Example here