gpt4 book ai didi

python - scrapy LinkExtractor(allow=(url)) 获取错误的抓取页面,正则表达式不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:44 25 4
gpt4 key购买 nike

我要抓取页面http://www.douban.com/tag/%E7%88%B1%E6%83%85/movie 。我的蜘蛛代码的一部分是:

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蜘蛛也会抓取“\?start=100”或“\?start=1000”这样的页面。它出什么问题了?怎么解决呢?提前致谢。

最佳答案

正则表达式 \d{2} 匹配以两位数开头的每个数字。

如果您想将正则表达式限制为两位数字,可以使用 \d{2}$,这样它仅在行尾有两位数字时才匹配。

更通用的是使用 \d{2}\b ,以便任何非字母数字值或空格都必须跟随。

关于python - scrapy LinkExtractor(allow=(url)) 获取错误的抓取页面,正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30120237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com