0

私はウェブサイトをスクラップするためのスパイダーを書いています:

最初の URL www.parenturl.com は parse 関数を呼び出します。そこから、parse2 関数へのコールバックがある URL www.childurl.com を抽出し、dict を返します。

質問 1) dict 値を、解析関数で親 URL から抽出した他の 7 つの値と共に mysql データベースに格納する必要がありますか? (response_url は何も出力しません)

def parse(self, response):
    for i in range(0,2):
        url = response.xpath('//*[@id="response"]').extract()
        response_url=yield SplashFormRequest(url,method='GET',callback=self.parse2)
        print response_url # prints None

def parse2(self, response):
    dict = {'url': response.url}
    return dict
4

2 に答える 2

1

リターン コールのように動作するため、yield コールを変数と同一視することはできません。

削除してみてください

def parse(self, response):
    self.results = []
    for i in range(0,2):
        url = response.xpath('//*[@id="response"]').extract()
        request = SplashFormRequest(url,method='GET',callback=self.parse2)
        yield request
    print self.results

def parse2(self, response):
    # print response here !
    dict = {'url': response.url}
    self.results.append(dict)
于 2016-12-16T08:36:32.510 に答える