我想抓取页面the documentation。 我的蜘蛛代码的一部分是:
class MovieSpider(CrawlSpider):
name = "doubanmovie"
allowed_domains = ["douban.com"]
start_urls = ["http://www.douban.com/tag/%E7%88%B1%E6%83%85/movie"]
rules = (
Rule(LinkExtractor(allow=(r'http://www.douban.com/tag/%E7%88%B1%E6%83%85/movie\?start=\d{2}'))),
Rule(LinkExtractor(allow=(r"http://movie.douban.com/subject/\d+")), callback = "parse_item")
)
def start_requests(self):
yield FormRequest("http://www.douban.com/tag/%E7%88%B1%E6%83%85/movie",headers={'User-Agent':'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0'})
我只想像“\?start = \ d {2}”一样抓取页面,但scrapy spider也会像“\?start = 100”或“\?start = 1000”一样抓取页面。它出什么问题了?怎么解决? 提前谢谢。
答案 0 :(得分:1)
正则表达式\d{2}
匹配以两位数开头的每个数字。
如果要将正则表达式限制为两位数,可以使用\d{2}$
,以便只有在行尾有两位数时才匹配。
更常见的是使用\d{2}\b
,以便必须遵循任何非字母数字值或空格。