1

Webページをクロールするスパイダーを作成しました(ここから得たすべての助けを借りて)、必要なすべての属性を持つアイテムを返します。{"count": 24, "Gender": "Female ", "Age": "25-34", "Location": "Edinburgh", "Name": "abcde"} という形式の辞書を返します。

[24、「女性」、「25-34」、「エジンバラ」、「abcde」]のようなリストのみを返したい

これをファイルに保存できます。これどうやってするの ?

編集:しかし、辞書の値を返すことができません。return item.values() を使用すると、エラーが発生します... Spider は Request、BaseItem、または None を返す必要があります Unicode を取得しました

4

2 に答える 2

3

要件を誤解している可能性がありますが、出力ファイルを辞書よりもリストのように見せたい場合は、json ファイルではなく csv ファイルを出力する必要がありますか? csv フィード エクスポートはCSVItemExporterクラスを使用し、次の形式で出力を生成します。

count,Gender,Age,Location,Name 
24,Female,25-34,Edinburgh,abcde

次のコマンドを実行することで、これを実現できるはずです。

scrapy crawl dmoz -o items.csv -t csv

ヘッダーなしで出力を生成する場合は、CSVItemExporter をサブクラス化し、include_headers_lineパラメーターのデフォルト値が True であるため、パラメーターを False に設定する必要があります。

于 2013-01-03T18:17:34.313 に答える
1

辞書から値のみを抽出して、好きなことを行うことができます。

>>> d = {"count": 24, "Gender": "Female ", "Age": "25-34", "Location": "Edinburgh", "Name": "abcde"}
>>>
>>> d.values()
[24, 'Female ', '25-34', 'Edinburgh', 'abcde']
于 2013-01-03T16:43:52.687 に答える