2015-08-10 2 views
1

Я изменил мои start_requets метода быть:Как анализировать ответ с использованием глобальной переменной в Scrapy?

def start_requests(self): 
    array = list(open("file", 'r')) 
    for i in array: 
     yield self.make_requests_from_url("http://example.org/test.php?id=" + i) 

Как я могу получить доступ к значению I в синтаксического анализа метода?

Я попытался установить глобальную переменную IDD и добавление

global idd 
idd = i 

в start_requests метод, а затем

def parse(self, response): 
    item = DataItem() 
    item['id'] = idd 

Но все области Ид пунктов были заполнены последним значением IDD в ,

Как исправить это?

+0

Где ваш метод синтаксического анализа? –

+0

Я только что опубликовал его часть, остальное казалось неуместным. – John

ответ

3

One (и, вероятно, самый простой) вариант был бы передать его в meta:

yield scrapy.Request("http://example.org/test.php?id=" + i, 
        meta={"index": i}, 
        dont_filter=True) 

Затем прочитал в parse():

def parse(self, response): 
    index = response.meta["index"] 
+0

Отлично! Благодаря! – John

Смежные вопросы