2016-07-14 11 views
1

parse_linkメソッドにコールバックを要求するparse_start_urlメソッドのエントリのURLを取得しようとしていますが、コールバックが機能していないようです。私は何が間違っていますか?カスタム解析コールバック要求がScrapyで機能しない

コード:

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

あなたが抽出されたURLが続くことを可能にするためにあなたのallowed_domainsを調整する必要があります。

allowed_domains = ['vivastreet.co.in'] 

その後、あなたは無効な式エラーに入るだろう、これが原因//*h1[@class = "kiwii-font-xlarge kiwii-margin-none"です無効であり、修正する必要があります。

関連する問題