2016-07-14 2 views
1

parse_link 메서드에 대한 콜백 요청을 생성하지만 콜백이 작동하지 않는 parse_start_url 메서드의 항목에 대한 URL을 반입하려고합니다. 나는 무엇이 잘못 되었는가?사용자 지정 구문 분석 콜백 요청이 Scrapy에서 작동하지 않습니다.

코드 : 당신은 당신의 allowed_domains 추출 된 URL이 따라 할 수 있도록 조정해야

from scrapy import Request 
from scrapy.selector import Selector 
from scrapy.linkextractors import LinkExtractor 
from scrapy.spiders import Rule, CrawlSpider 
from property.items import PropertyItem 
import sys 

reload(sys) 
sys.setdefaultencoding('utf8') #To prevent UnicodeDecodeError, UnicodeEncodeError. 

class VivastreetSpider(CrawlSpider): 
    name = 'viva' 
    allowed_domains = ['chennai.vivastreet.co.in'] 
    start_urls = ['http://chennai.vivastreet.co.in/rent+chennai/'] 
    rules = [ 
     Rule(LinkExtractor(restrict_xpaths = '//*[text()[contains(., "Next")]]'), callback = 'parse_start_url', follow = True) 
     ] 

    def parse_start_url(self, response): 
     urls = Selector(response).xpath('//a[contains(@id, "vs-detail-link")]/@href').extract() 

     for url in urls: 
      print('test ' + url) 
      yield Request(url = url, callback = self.parse_link) 

    def parse_link(self, response): 
     #item = PropertyItem() 
     print('parseitemcalled') 
     a = Selector(response).xpath('//*h1[@class = "kiwii-font-xlarge kiwii-margin-none"').extract() 
     print('test ' + str(a)) 

답변

0

: 당신이 잘못 표현 오류로 얻을 것이다,

allowed_domains = ['vivastreet.co.in'] 

을 그리고, 이것이 //*h1[@class = "kiwii-font-xlarge kiwii-margin-none" 때문에 유효하지 않으며 수정해야합니다.

관련 문제