我想在不使用应用编程接口的情况下访问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来执行。
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 产品可供具有视觉、听觉、运动和其他障碍的人士使用。软