この URL からすべてのテーブルのタイトルをクロールしようとしています: https://www.nature.com/articles/s41586-023-06192-4
この HTML 要素は Web サイトで見つかります:
リーリーこのタイトルは見つからないため、クロールできません。 HTML スクリプトをコンソールに出力しても、この要素が見つかりません。
次のコードを使用して HTML スクリプトを出力します:
リーリーBeautifulSoup のクロール機能を使用します:
リーリーSelenium のクローリング機能を使用します:
リーリーSelenium と BeautifulSoup を使用して Web サイトをクロールしようとしています。 iframeを確認してみました。 ページが完全にロードされることを確認するために、フェッチ操作を 40 秒遅らせました。 GPT4でもこの問題は解決できません。
つまり、使用したコードは問題ないようですが、思い浮かぶ問題は、Web サイトが JavaScript または XHR 呼び出しを介してクロールしたい要素を読み込んでいる可能性があるため、リクエスト ライブラリを使用してリクエストを送信すると、その要素を取得できません。
この問題を解決する方法は、Selenium を使用し、Selenium で Web サイトを開き、ページのソース コードを bs4 にロードして、コードが正常に動作するようにすることです。
注: Web サイト全体がロードされたら、ページのソース コードを bs4 にロードします。この Web サイトのコンテンツを表示するにはログインが必要であるため、Selenium を使用してログイン関数を作成する必要もあります。