3

私はスクレイピーが初めてです。items.py で、ItemClass1 と ItemClass2 という 2 つの ItemClass を宣言します。スパイダー メソッド parseUrl は、html とスクレイプ データを取得し、それぞれのアイテム クラスのリストに入れます。

e.g:
C1Items = []
C1Item = ItemClass1()
#scrape data
C1Items.append(C1Item)
...
C2Items = []
C2Item = ItemClass2()
#scrape data
C2Items.append(C2Item)
...

最後に: C1Items と C2Items には必要なデータが含まれています。

return C1Items #will pass ItemClass1 data to pipeline
return C2Items #will pass ItemClass2 data to pipeline

C1Items と C2Items の両方をパイプラインに渡す最善の方法を教えてください。

4

2 に答える 2

5

異なるクラスのすべてのアイテムを 1 つのリストに結合してそのリストを返すか、次のyieldステートメントを使用します。

C1Item = ItemClass1()
#scrape data
yield C1Item
...
C2Item = ItemClass2()
#scrape data
yield C2Item
于 2012-12-29T03:02:59.777 に答える
2

配列を 1 つの大きな配列に結合して、それを返すだけです。

return C1Items + C2Items

parseUrlまたは、次のようにしてジェネレーター関数に変えることもできます。

yield C1Items
yield C2Items
于 2012-12-28T22:02:52.250 に答える