ということで、(これまでのところ) 14 ページから鉱物の名前と価格を削除し、それを .txt ファイルに保存するコードがあります。最初は Page1 のみを使用してみましたが、その後、より多くのデータを取得するためにさらにページを追加したいと考えました。しかし、その後、コードは、ランダムな名前/文字列など、本来あるべきではないものを取得します。私はそれがそれを獲得するとは期待していませんでしたが、それは獲得し、これに間違った価格を割り当てました。これは、鉱物に「予期せぬ名前」が付けられ、リストの残り全体の価格が間違った後に発生します。以下を参照してください:
したがって、この文字列は他の文字列とは異なるため、これ以上のコードでは分割できず、エラーが発生します:
リーリーこれらのエラーを無視して、別の Stackoverflow ページで使用されている方法の 1 つを使用しようとしました:
リーリーそれは機能し、エラーは発生しません...しかし、(私が気づいたように) 間違った鉱物に間違った価格が割り当てられます。これらの「奇妙な」名前を無視してリストを続行するようにコードを変更するにはどうすればよいでしょうか?以下は完全なコードです。URL5 で停止し、次のポップアップ インデックス エラーが発生したことを覚えています:
リーリー編集: これは、ヘルパーのおかげで、以下の完全に有効なコードです。
リーリー しかし、いくつかの変更の後、新しいエラーで停止します。指定されたプロパティで文字列が見つからないため、「IndexError: Popping from empty list」というエラーが発生します...soup.select( "table tr td font>font" )
は、「name」
ページネーションとともに次の例を試すことができます
リーリー出力:
リーリー必要なのは、(数レベル下ではなく) フォント要素の直接内部にあるリンクのみが認識されるように、CSS セレクターをより具体的にすることだけです。
リーリーページの下部にある次/前のページのリンクではなく、リンクが単一の項目を指すという条件をさらに追加すると効果的です。
リーリー