2017-07-03 4 views
0

私はscrapyスクリプトを持っている間は)リストにnavigation_path収集し、新しい解析更新リスト、 -</p> <p>1を次のようにループ

g_next_page_list = [] 
g_next_page_set = set() 

def parse(self,response): 

    #code to extract nav_links 

    for nav_link in nav_links: 
     if nav_link not in g_next_page_set: 
      g_next_page_list.append(nav_link) 
      g_next_page_set.add(nav_link) 

    for next_page in g_next_page_list: 
     next_page = response.urljoin(next_page) 
     yield scrapy.Request(next_page, callback=self.parse_start_url, dont_filter=True,) 

を呼び出して、私はとparse_start_urlを定義しました:

def parse_start_url(self,response): 

    #code to extract nav_links 

    for nav_link in nav_links: 
     if nav_link not in g_next_page_set: 
      g_next_page_list.append(nav_link) 
      g_next_page_set.add(nav_link) 

しかし、グローバルリストとメインパース(g_next_page_set、g_next_page_list)に設定されたが、添付取得されていません。私は間違って何をしていますか?

ありがとうございます!あなたがここにグローバル使用していない

+0

を動作させる必要があります 'それらのいずれかのタイプミスをg_next_page_list''と同じことをv_next_page_list'たりしているされています?そしてそれらが異なる場合は、 'v_next_page_list'のサンプルデータを提供してください。 – supersam654

+0

@ supersam654混乱については申し訳ありません。彼らは同じで、元の投稿を更新しました – user6055239

答えて

1

、あなたがself.variable_name

g_next_page_list = [] 
g_next_page_set = set() 

def parse(self,response): 

    #code to extract nav_links 

    for nav_link in nav_links: 
     if nav_link not in v_next_page_set: 
      self.g_next_page_list.append(nav_link) 
      self.g_next_page_set.add(nav_link) 

    for next_page in v_next_page_list: 
     next_page = response.urljoin(next_page) 
     yield scrapy.Request(next_page, callback=self.parse_start_url, dont_filter=True,) 


def parse_start_url(self,response): 

    #code to extract nav_links 

    for nav_link in nav_links: 
     if nav_link not in v_next_page_set: 
      self.g_next_page_list.append(nav_link) 
      self.g_next_page_set.add(nav_link) 

を使用これは

関連する問題