html抓取站点加载错误的jsoup-java

lstz6jyr  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(385)

我试图运行一个脚本,从一个网站拉信息,但当我比较实际的网站和网站,我的程序显示它是不一样的。
缺少的一些例子就是开始!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/ 但如果我添加suffex字符串/mb\u 43\u e7\u 24/manufacturing/minnesota.php,就不会
不管怎么说,萨福克家族是否牵涉其中?
或者是网站因为我的请求太多而暂时禁止了我?

sqxo8psd

sqxo8psd1#

jsoup不执行/呈现javascript。htmlunit有一个无头浏览器,它呈现整个页面并以字符串形式返回内容。 selenium 也是有用的。selenium有firefox、chrome、ie和htmlunit的网络驱动程序。我使用了下面的代码来执行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);
  }
}

上面的代码应该足够开始了。。。

相关问题