2

Web サイトから特定の製品情報をスクレイピングしようとしています。ただし、希望する XPATH 基準の 1 つは、すべての製品のページに表示されるわけではありません。(全ての商品に名称、価格等が記載されておりますが、推奨年齢が記載されていないものもございます)。

これは問題ではありませんが、scrapy がシェルにデータを書き込んだり、データを返したりすると、開始 URL のリストに関連付けられた順序ではなくなり、一部の URL からのデータの欠落も考慮されなくなります。したがって、すべてのデータ (さまざまな変数の複数の列) は新しい age 列と一致しません。これは、はるかに短く、順序が正しくないためです。これは、年齢が表示されている製品のみに焦点を当てている場合には当てはまりません.

データ内の一致する列の順序を維持するために、目的の XPATH と年齢のないページを空白に戻す方法はありますか?

これが私のXPATHセレクターです:

item["age"] = hxs.select('//li[contains(@class,"our-age")]/span/text()').extract()

(一部の Web ページには年齢がないため、パスが完全に欠落しています。)

4

1 に答える 1

1
xpath = '//li[contains(@class,"our-age")]/span/text()'
item["age"] = hxs.select(xpath).extract() or [' ']
于 2013-06-22T14:26:40.070 に答える