簡體   English   中英

HTML抓取網站加載錯誤的Jsoup Java

[英]Html scraping Site Loads Wrong Jsoup Java

我正在嘗試運行腳本以從網站中提取信息,但是,當我將實際網站與我的程序顯示的網站不同時,我會這樣做。

缺少的一些示例是開始!doctype和公司信息http://www.manta.com/mb_43_E7_24/manufacturing/minnesota

我不確定javascript是否是問題的一部分,我嘗試將其關閉並且仍然有效,但是我也注意到其中包含很多javascript; 該網站無需登錄。 也許是cookie?(我對cookie不太了解)

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具有無頭瀏覽器,該瀏覽器呈現整個頁面並以String形式返回內容。 硒也是有用的。 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);
  }
}

上面的代碼應該足以開始...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM