0
我試圖建立使用Scrapy一個蜘蛛的WebCrawler,我已經設置了一個規則我希望我的履帶回暖使用正則表達式的鏈接:Scrapy sqmllinkextractor規則改變的URL
rules = (Rule(SgmlLinkExtractor(allow='http\:\/\/www\.cartelera\.com\.uy\/apeliculafunciones\.aspx\?[^"]*1&29'), 'parse_loly', follow=True,),)
我檢查正則表達式和它的工作原理,它匹配我想蜘蛛抓取的鏈接,但是當我運行程序時,蜘蛛沒有找到任何物品,並且檢查了一下,發現當正則表達式正確匹配物品時,當蜘蛛走抓取頁面的網址,它使用的是不同的,應該是。
例如,蜘蛛應該匹配和抓取網址如
http://www.cartelera.com.uy/apeliculafunciones.aspx?7242&&CINE&OBRA&-1&29
http://www.cartelera.com.uy/apeliculafunciones.aspx?10704&&CINE&OBRA&-1&29
http://www.cartelera.com.uy/apeliculafunciones.aspx?10697&&CINE&OBRA&-1&29
但網址scrapy爬網出來像
http://www.cartelera.com.uy/apeliculafunciones.aspx?-1=&29=&7242=&CINE=&OBRA=
http://www.cartelera.com.uy/apeliculafunciones.aspx?-1=&29=&10704=&CINE=&OBRA=
http://www.cartelera.com.uy/apeliculafunciones.aspx?-1=&29=&10697=&CINE=&OBRA=
這些URL指向錯誤頁面,這樣,很明顯,沒有任何項目被發現。
沒有錯誤信息 爲什麼會發生這種情況,如何避免它?
粘貼下面
class MySpider(CrawlSpider):
name = 'cartelera'
allowed_domains = ["www.cartelera.com.uy"]
start_urls = ["http://www2.cartelera.com.uy/apeliculafunciones.aspx?,,PELICULAS,OBRA,0,26"]
rules = (Rule(SgmlLinkExtractor(allow='http\:\/\/www\.cartelera\.com\.uy\/apeliculafunciones\.aspx\?[^"]*1&29'), 'parse_loly', follow=True,),)
##simple debugging method to output and check the crawled urls
def parse_loly(self, response):
print '%s' % response.url
return
謝謝,這很好,謝謝你的shell測試! – ConnorU