2017-11-11 10 views
0

私はスクラピーツールを使ってウェブサイトをスクラップしようとしています。スクラップされた製品ごとに1ずつ増えるシリアル番号のような、pythonのスクラップ出力にフィールドを追加したい

私は「シリアルID」のような出力に含ま に追加フィールドを追加したいデータを廃棄することができていますが、

:「3001」、 は、各製品のため、それはシリアルIDをインクリメントする必要があり をスクラップ上記のコードについては3002、3003、3004 .............

def parse_dir_contents(self,response): 
    cat = response.meta['cat'] 
    serial_id = I 
    item = [] 
    content = {} 

    content['serial_id'] = serial_id 
    content['url'] = response.url 
    content['category'] = cat 
    brand = response.xpath('//div[@class="pageinfo__brdcrmb"]/text()').extract()[0].split('/') 
    content['brand'] = brand[1].strip() 
    I = I + 1 
    item.append(content) 
    output = json.dumps(item, sort_keys=True, indent=4, separators=(',', ': ')) 
    self.json_file.write(output) 

のような1、で私は=

コンテンツ[ 'URL']のようなエラーを取得していますレスポンス.url NameEr ror:name 'response'が定義されていません

+0

あなたが質問にインデントを修正するだろうか? 'parse_dir_contents'がどこにあるのかわからない – PRMoureu

答えて

0

第3行目の名前Iは定義されていません。

serial_id = 1 

にそれを変更してからであること増加 :

serial_id += 1 

あなたはscrapyの利点を使用することができます(パイプラインのように、...項目を定義して)ときちんとあなたのコードを維持します。

この便利な文書を読む:

https://doc.scrapy.org/en/latest/

関連する問題