내가 Scrapy 사용하여 webcrawler 거미를 구축하기 위해 노력하고있어 변경하고 나는 내 크롤러가 정규식 사용하여 선택하려는 링크에 대한 규칙을 설정 한 :Scrapy의 sqmllinkextractor 규칙은 URL을
rules = (Rule(SgmlLinkExtractor(allow='http\:\/\/www\.cartelera\.com\.uy\/apeliculafunciones\.aspx\?[^"]*1&29'), 'parse_loly', follow=True,),)
내가 확인을 정규식과 그것이 작동하고 그것이 거미가 크롤 링을 원하는 링크를 일치하지만, 내가 거미가 항목을 발견하고 작은 검사와 함께 정규식이 항목을 올바르게 일치하는 동안, 거미가 간다 사용하는 URL이 틀린 페이지를 크롤링하는 것입니다.
예를 들어, 거미 일치 및
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
로 URL을 크롤링 그러나 URL을의 scrapy는이 URL을 분명히 때문에, 어떤 항목을 페이지에 오류가 없습니다 이어질
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=
처럼 나올 크롤한다 찾을 수 있습니다.
오류 메시지가 없습니다 왜 이런 일이 일어나고 어떻게 피할 수 있습니까? 여기 당신이 scrapy 작업 방법
SgmlLinkExtractor(allow='http...', canonicalize=False)
: 해당 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
감사합니다. 쉘 테스트를 해 주셔서 감사합니다. – ConnorU