Html抓取网站加载错误的J汤Java

Html scraping Site Loads Wrong Jsoup Java

本文关键字:Java 错误 抓取 网站 加载 Html      更新时间:2023-09-26

我正试图运行一个脚本从网站中提取信息,但当我将实际网站与网站进行比较时,我的程序显示它不一样。

一些缺失的例子才是开始!doctype和公司信息http://www.manta.com/mb_43_E7_24/manufacturing/minnesota

我不确定javascript是否是问题的一部分,我试着关闭它,它仍然有效,但我也注意到其中有很多javascript;该网站不需要登录。也许是饼干?(我对饼干了解不多)

String keyword = "http://www.manta.com/mb_43_E7_24/manufacturing/minnesota.php";
Document doc = Jsoup.connect(keyword).referrer("http://www.google.com").userAgent("Mozilla/5.0 (Windows; U;     WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").get();
System.out.Println(doc.toString());

以上是使用的代码

你知道为什么它不能像我的浏览器那样加载我的页面吗?有一次我让它工作,但我不小心把它弄坏了

如果这个解决方案不适合从网站上获取信息,你有什么建议吗?

我又做了一些工作,发现它对http://www.manta.com/但如果我添加后缀字符串/mb_43_E7_24/manufacturing/minnesota.php ,则不会

妇女参政权是否涉及其中?

或者可能是网站因为我的请求太多而暂时禁止了我?

Jsoup不执行/呈现Javascript。HTMLUnit有一个无头浏览器,它可以呈现整个页面并以字符串的形式返回内容。硒也是有用的。Selenium有适用于Firefox、Chrome、IE和HTMLUnit的WebDrivers。我已经使用下面的代码来执行Javascript并返回html。我发现这对我希望在评论部分使用Javascript的新闻网站很有用。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class Test{
  private WebDriver driver;
  private String output; 
  public Document getDocument(String input) {
    driver = new HTMLUnitDriver(true); //the param true turns on javascript.
    driver.get(input);
    output = driver.getPageSource();
    driver.quit();
    return Jsoup.parse(output);
  }
}

上面的代码应该足以开始。。。