コードが Web スクレイピングの反復をスキップすることは可能ですか? IndexError: ポップアップ インデックスが範囲外です
P粉846294303
P粉846294303 2024-02-21 19:40:15
0
2
407

ということで、(これまでのところ) 14 ページから鉱物の名前と価格を削除し、それを .txt ファイルに保存するコードがあります。最初は Page1 のみを使用してみましたが、その後、より多くのデータを取得するためにさらにページを追加したいと考えました。しかし、その後、コードは、ランダムな名前/文字列など、本来あるべきではないものを取得します。私はそれがそれを獲得するとは期待していませんでしたが、それは獲得し、これに間違った価格を割り当てました。これは、鉱物に「予期せぬ名前」が付けられ、リストの残り全体の価格が間違った後に発生します。以下を参照してください:

したがって、この文字列は他の文字列とは異なるため、これ以上のコードでは分割できず、エラーが発生します:

リーリー

これらのエラーを無視して、別の Stackoverflow ページで使用されている方法の 1 つを使用しようとしました:

リーリー

それは機能し、エラーは発生しません...しかし、(私が気づいたように) 間違った鉱物に間違った価格が割り当てられます。これらの「奇妙な」名前を無視してリストを続行するようにコードを変更するにはどうすればよいでしょうか?以下は完全なコードです。URL5 で停止し、次のポップアップ インデックス エラーが発生したことを覚えています:

リーリー

編集: これは、ヘルパーのおかげで、以下の完全に有効なコードです。

リーリー

しかし、いくつかの変更の後、新しいエラーで停止します。指定されたプロパティで文字列が見つからないため、「IndexError: Popping from empty list」というエラーが発生します...soup.select( "table tr td font>font" ) は、「name」

と同様にヘルプを提供します。
P粉846294303
P粉846294303

全員に返信(2)
P粉391955763

ページネーションとともに次の例を試すことができます

リーリー

出力:

リーリー
いいねを押す +0
P粉677684876

必要なのは、(数レベル下ではなく) フォント要素の直接内部にあるリンクのみが認識されるように、CSS セレクターをより具体的にすることだけです。

リーリー

ページの下部にある次/前のページのリンクではなく、リンクが単一の項目を指すという条件をさらに追加すると効果的です。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート