リストページから抽出するときにエラーが発生するのはなぜですか?
フォローする質問:
リストページから抽出するときにエラーが発生するのはなぜですか?
「1つのデータフィールドがありません。HTTPステータスコード200」というエラーレポートが表示されています。
回答:
リストページからスクレイピングするとき、通常、エラーは、ループアイテムから必要なデータフィールドが含まれていないアイテムを見つけたことが原因です。
例として次のURLをご覧ください。
このページでリスト化されたものは25個しかありませんが、ループアイテムは31個のアイテムが見つかりました。余計なアイテムもループの中に入っています。
リスト化されたものから抽出したい内容は以下のようなものであるべきです。
だが、以下のようなアイテムもループの中に入っています。
このエラーを解決するにはどうすればよいですか?
リスト化されたアイテムの入っているループのXPathを変更すれば解決できます。
この場合、ページのHTMLコードを調べると、黄色の枠は余計なアイテムのHTMLコードです。必要なアイテムはすべてarticleタグ内にあり、idに「jobsearchresult」が含まれていることがわかります。
それで、XPathを //article[contains(@id,"jobsearchresult")] に変更すれば、正しい数のアイテムが絞れます。
関連記事: