0
我正在爬取一個擁有?locale = en或locale = jp的網站...Scrapy的LinkExtraction - 全球否認?
我只想抓取網址中未指定區域設置的網站。
目前我有這樣的:
# More specific ones at the top please
# In general, deny all locale specified links
rules = (
# Matches looks
# http://lookbook.nu/look/4273137-Galla-Spectrum-Yellow
Rule(SgmlLinkExtractor(allow=('/look/\d+'), deny=('\?locale=')), callback='parse_look'),
# Matches all looks page under user overview,
Rule(SgmlLinkExtractor(allow=('/user/\d+[^/]+/looks/?$'), deny=('\?locale=')),
callback='parse_model_looks'),
Rule(SgmlLinkExtractor(allow=('/user/\d+[^/]+/looks\?page=\d+$'), deny=('\?locale=')),
callback='parse_model_looks'),
# Matches all user overview pages
Rule(SgmlLinkExtractor(allow=('/user/\d+[^/]*/?$'), deny=('\?locale=')),
callback='parse_model_overview'),
我反覆否認無處不在。
還有更好的方法嗎?
我試圖做一般的規則來拒絕所有的\?locale =但沒有奏效。
如何編寫一個構造規則的函數並始終傳遞拒絕參數。然後在規則元組中使用它。例如。 rules =(mkrule(regex1,callback1),mkrule(regex2,callback2),...) –