0
parse_page
함수 내에서 while
루프가 있고 제한에 도달 할 때까지 제동하고 싶지 않습니다.함수에서 다른 함수로 인수를 전달
parse_page
에서 3 개의 인수를 description
으로 전달한 다음 description_item
으로 이동하려고합니다.
그리고 함수를 구문 분석 한 후 description_item
parse_page
함수 내에서 while
루프로 돌아가고 싶습니다. Request
초기화 할 때 당신은 meta을 매개하는 딕셔너리를 할당 할 수
def parse_page(self, response):
item = TestItem()
... # more code here
while i <= len(response.xpath("//script[2]//text()").extract_first()):
# parsing url
parsed = urlparse.urlparse(url)
tranz_type = urlparse.parse_qs(parsed.query)['tranz']
categ_type = urlparse.parse_qs(parsed.query)['categ']
id = js2xml.jsonlike.make_dict(jstree.xpath("//var[@name='ANUNTURI']//property[@name='ID']")[i])
item['url'] = url
item['id'] = id[1]
item['tranz_type'] = tranz_type
item['categ_type'] = categ_type
i += 1
request = Request(response, callback=self.description)
request.meta['id'] = id
request.meta['tranz_type'] = tranz_type
request.meta['categ_type'] = categ_type
#yield item
return request
def description(self, response):
id =response.meta.get('id')
tranz_type =response.meta.get('tranz_type')
categ_type =response.meta.get('categ_type')
data = {'id_anunt': id, 'tranz': tranz_type, 'categ': categ_type, 'mc': '1', 'id_cautare': '0'}
print data
req = FormRequest.from_response(response, url="http://map.imobiliare.ro/map/serv/detalii", formdata=data,
callback=self.description_items)
yield req
def description_item(self, response):
item = TestItem()
item['link'] = json.loads(response.body).get('link')
yield item