ホームページ > Java > &#&チュートリアル > JSoup を使用して JavaScript で生成されたコンテンツにアクセスするにはどうすればよいですか?

JSoup を使用して JavaScript で生成されたコンテンツにアクセスするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-06 06:38:12
オリジナル
658 人が閲覧しました

How Can I Access JavaScript-Generated Content with JSoup?

JSoup と JavaScript で生成されたコンテンツ

JSoup を使用して Web ページを解析する場合、JSoup は HTML パーサーであり、パーサーではないことを覚えておくことが重要です。ブラウザエンジン。これは、JavaScript を実行せず、最初のページの読み込み後にページに動的に追加されたコンテンツは JSoup には表示されないことを意味します。

たとえば、タグを動的に追加するページを解析する必要がある場合、 div 要素に JavaScript を使用すると、JSoup はそのコンテンツをキャプチャできなくなります。要素自体は HTML ソース コードに存在する可能性がありますが、JavaScript によって追加されたタグは JSoup では利用できません。

JavaScript で生成されたコンテンツへのアクセス

アクセスするにはJavaScript によってページにコンテンツが追加される場合は、ブラウザ環境をエミュレートできるツールを使用する必要があります。これを行うことができる Java ライブラリがいくつかあります。例:

  • [Selenium](https://www.selenium.dev/)
  • [HtmlUnit](https://htmlunit.sourcefor ge.io/)
  • [JBrowserDriver](https://github.com/JBrowserDriver/JBrowserDriver)

これらライブラリを使用すると、仮想ブラウザ インスタンスを作成し、実際のブラウザでレンダリングされているかのように Web ページを操作できます。これにより、JavaScript を実行し、イベントをトリガーし、動的に追加されたコンテンツにアクセスできるようになります。

Selenium を使用した例

Selenium を使用して JavaScript で生成されたコンテンツを取得する例を次に示します。参照したページから:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class SeleniumExample {
    public static void main(String[] args) {
        // Set up the WebDriver
        System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        // Load the web page
        driver.get("http://www.bestreferat.ru/referat-32558.html");

        // Wait for the div element to be filled with JavaScript
        WebElement tagsList = driver.findElement(By.id("tags_list"));
        WebDriverWait wait = new WebDriverWait(driver, 10);
        wait.until(ExpectedConditions.visibilityOf(tagsList));

        // Get the tags from the div element
        List<WebElement> tags = tagsList.findElements(By.tagName("a"));

        // Print the tags
        for (WebElement tag : tags) {
            System.out.println(tag.getText());
        }

        // Close the WebDriver
        driver.close();
    }
}
ログイン後にコピー

この例では、Selenium を使用して Web ページを読み込みます。追加する JavaScript 生成コンテンツを指定し、div 要素からタグを取得します。

以上がJSoup を使用して JavaScript で生成されたコンテンツにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート