当前位置: 首页 > 知识库问答 >
问题:

使用HtmlUnit访问动态网站

辛健
2023-03-14

我想在不使用应用编程接口的情况下访问instagram页面。我需要找到追随者的数量,所以这不仅仅是一个源下载,因为页面是动态构建的。

我发现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上搜索了如何告诉它忽略页面的某些部分,并找到了这条线索。

webClient.setWebConnection(new WebConnectionWrapper(webClient) {
              @Override
              public WebResponse getResponse(final WebRequest request) throws IOException {
                if (request.getUrl().toString().contains("webfont")) {
                  System.out.println(request.getUrl().toString());
                  return super.getResponse(request);
                } else {
                  System.out.println("returning response...");
                  return new StringWebResponse("", request.getUrl());
                }
              }
            });

使用该代码,异常消失了,但源(或页面标题,或我尝试过的任何其他内容)似乎是空的。“返回响应......”打印一次。

我也对不同的方法持开放态度。最终,单个字符串中的整个页面源对我来说已经足够好了,但我需要JS来执行

共有1个答案

谈炳
2023-03-14

HtmlUnit with JS不是一个好的解决方案,因为许多JS页面的Javascript引擎Mozilla Rhino不起作用,并且有很多问题。

您可以像Web驱动程序一样使用PhantomJs:

幻影

 类似资料:
  • 我的问题很简单,但我认为Velocity不支持这一点。我必须使用vm文件中定义的变量名访问映射或对象。 配置为Map 这里的问题是,当我发送此模板进行渲染时,我得到以下代码: 所以看起来在呈现模板时,$img_src、$img_link和$img_alt没有正确定义,velocity试图在自身上呈现config对象,在下一轮呈现时,config对象已经呈现为纯文本,其余变量就放在其中。 比这更奇怪

  • 问题内容: 我正在编写一个Java程序来登录学校用来发布成绩的网站。 这是登录表单的网址:https : //ma- andover.myfollett.com/aspen/logon.do 这是登录表单的HTML: 我正在尝试使用以下代码登录: 该程序将填充用户名框,然后单击“登录”按钮,但不会填充密码框。我可以进行哪些更改以使该程序正常运行?我怀疑密码框的“ type =’password’”

  • 我正在尝试使用动态名称访问对象的属性。这可能吗?

  • 我有一个充当静态网站的S3 bucket,我正在使用API网关向它分发流量。我知道CloudFront在这里是一个更好的选择,但请不要建议它。这不是一个选择,由于原因我不想说。 我正在通过配置{proxy+}资源来完成我的解决方案。下图: 我想只允许从API网关代理资源访问S3网站。是否有一种方法可以为代理资源提供一个执行角色,类似于如何为资源提供一个执行角色来运行lambda函数?Lambda执

  • 使用 Dreamweaver 可生成可供有视觉、听觉、运动及其他障碍的人士使用的网站和 Web 产品。 注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。 关于辅助内容 辅助功能是指使 Web 站点和 Web 产品可供具有视觉、听觉、运动和其他障碍的人士使用。软