2015-11-02 31 views
0

當Web瀏覽器被要求加載一個URL時,它會向Web服務器發出一個HTTP請求,以獲得與該HTTP請求相對應的響應。收到響應後,它會分析響應(HTML文檔)以獲取其他資源(如果有)。因此,Web瀏覽器會自動向Web服務器發出更多的HTTP請求。在Java中模擬Web瀏覽器行爲

在Java中,我們可以使用java.net.URLConnection來爲特定URL發出HTTP請求。迴應將在很短的時間後提供。然後,我們需要解析接收到的HTML響應,並逐一爲每個檢測到的資源發出HTTP請求。

  • 有沒有什麼辦法可以讓我們自動發出這些自動HTTP請求?

  • 或者至少是否存在解析HTML文檔並提取應該請求的所有資源列表的解析器?

+1

尋找「java模擬瀏覽器」可能會讓你到你想去的地方。 http://htmlunit.sourceforge.net/ – scrappedcola

+0

你實質上是在問:「如何用Java編寫Web瀏覽器?」這對於SO應該是的問答格式來說太廣泛了。否則,您需要建議使用HTML解析工具 - 請參閱[help/on-topic]中的#4 –

回答

0

你的問題有點不明確。你有什麼打算? (您想編寫瀏覽器,測試服務器還是測試網站?)

您可能需要檢查Apache JMeter,它是一個用於在Web服務器上運行負載測試的Java包。

您可能還需要在Selenium Webdriver是來看看讓你寫自動化測試的網站,並模擬瀏覽器的行爲(即發送請求,接收並分析迴應...)

這是什麼你在找什麼?

+0

我將測試網站。我通常是通過無頭Web瀏覽器PhantomJS來完成的。現在我正處於需要訪問由Web瀏覽器提取的JavaScript函數的步驟。目前使用PhantomJS,我無法訪問HTTP響應的主體。然後,我無法訪問JavaScript函數。但是,對我來說,一個解決方案是獲取所有HTTP請求的列表並將它們發佈到Web服務器以獲得響應...現在,我想也許我可以使用Java而不是PhantomJS來處理我的項目的這一部分只是爲了獲得JavaScript函數... – Suo6613

+0

我不想使用Selenium Web驅動程序,但我會檢查您剛剛建議的第一個鏈接,看看它是否可以解決我的問題。謝謝你... – Suo6613