Python RegEx - 如何在单词中形成包含连字符的正则表达式

时间:2015-05-08 06:58:09

标签: python regex

我需要一个正则表达式来匹配" / page-2"或" / page-3"作为较大网址的一部分,例如http://domain.com/articles/page-number

到目前为止,我尝试过这些组合: ' / PAGE- \ d' ' / PAGE- \ d' ' \ B / PAGE- \ d \ B'

请注意,我正在使用正则表达式作为Scrapy项目的start_urls部分中规则的一部分。任何建议非常感谢。这是一个代码段:

class NdtvXoloNewsItem(CrawlSpider):
    name = "ndtvxolonews"
    allowed_domains = ["http://gadgets.ndtv.com/tags/"]
    start_urls = ["http://gadgets.ndtv.com/tags/xolo/articles"]
    rules = [Rule(LinkExtractor(allow=['\b/page\-\d\b']))]

2 个答案:

答案 0 :(得分:0)

rules = [Rule(LinkExtractor(allow=[r'/page-\d+\b']))]

这应该为你做。

答案 1 :(得分:0)

allowed_domains应该只是域名。您可以通过在RegEx

中包含URL的开头来过滤到特定路径
class NdtvXoloNewsItem(CrawlSpider):
    name = "ndtvxolonews"
    allowed_domains = ["gadgets.ndtv.com"]
    start_urls = ["http://gadgets.ndtv.com/tags/xolo/articles"]
    rules = [Rule(LinkExtractor(allow=['http://gadgets.ndtv.com/tags/.*/page\-\d+']))]