2014-11-08 60 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