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))