2014-11-08 58 views
1

我想使用API​​訪問instagram頁面而不使用。我需要找到關注者的數量,所以它不僅僅是一個源代碼下載,因爲這個頁面是動態構建的。使用HtmlUnit訪問動態網站

我發現HtmlUnit作爲模擬瀏覽器的庫,以便JS得到渲染,並且我得到我想要的內容。

HtmlPage myPage = ((HtmlPage) webClient.getPage("http://www.instagram.com/instagram")); 

不過,這種調用導致以下異常:

Exception in thread "main" com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException: 403 Forbidden for http://d36xtkk24g8jdx.cloudfront.net/bluebar/3a30db9/scripts/webfont.js 

因此,它不能訪問該腳本,但如果我正確地解釋這一點,它只是字體加載,這我不不需要。我Google搜索如何告訴它忽略頁面的一部分,並找到this線程。使用該代碼,異常消失,但源代碼(或頁面標題,或其他任何我試過的)似乎都是空的。 「返回響應...」打印一次。

我也接受不同的方法。最終,單個字符串中的整個頁面源代碼對我來說足夠好,但我需要JS來執行。

+0

你連接到編程的Instagram?你是怎麼做到的?我已經嘗試過htmlUnit,httpClient,URLConnect,但沒有結果 – 2015-09-25 21:59:29

回答

2

HtmlUnit與JS是不是一個很好的解決方案,因爲JavaScript引擎Mozilla犀牛許多JS頁面不工作,並有很多問題。

您可以使用PhantomJs像的webdriver:

PhantomJs

+0

我需要在java中執行此操作,任何好的webdriver? – 2015-09-28 15:28:43

+1

嗨PhantomJs與硒 – 2015-09-28 16:16:21