Dos命令获取IE页面源

时间:2014-10-27 15:25:16

标签: java internet-explorer google-chrome dos

是否可以从命令行或使用java代码获取当前在IE或chrome中打开的网页源?我相信必须有办法。如果是的话,我们怎样才能获取它的确切信息,因为chrome和IE支持多个标签。

我正在尝试处理来自数百个网页的内容,其中一些网页会以15秒的间隔自动刷新。有些人没有。

是的,我可以通过使用套接字或使用URLConnection类的实例来获取网页源代码。但是,它不提供浏览器的默认刷新功能。唯一的选择是多次点击URL,如果可以使用默认浏览器刷新功能,则可以避免这种情况。

此外,如果读者可以评论如何使用程序填写文本框并从浏览器提交请求,那将会很棒。谢谢。

4 个答案:

答案 0 :(得分:1)

Java中有几个“抓取”框架。

我个人非常喜欢 JSoup ,因为它在代码中非常轻巧且紧凑。

  // get the source of a website in just 1 line of code.
  Document doc = Jsoup.connect("http://www.google.com").get();

  // print all hyperlink paths.
  Elements links = doc.select("a[href$=.html]");
  for (Element lnk : links) System.out.println(lnk.attr("href"));

然而,它不会呈现javascript或类似的东西。它简单,快速但很愚蠢。

我认为你可能更喜欢使用 HtmlUnit ,这更像是一个看不见的webbrowser。它使您甚至可以模拟按钮上的点击事件,执行javascript,等等。您可以使其模仿Internet Explorer或Firefox。

答案 1 :(得分:1)

您可以使用Selenium WebDrivers - 用于桌面和手机浏览器的一组修改/附加组件,允许您从代码中完全控制它们 - 包括获取当前加载的页面的来源(使用{ {3}}),填写输入并提交表单,选择文字,点击某些点,以及几乎所有其他可以在浏览器中完成的事情。

答案 2 :(得分:0)

您可以使用简单的HTTP客户端,以便使用commons-httpclient获取您的页面源。

设置库后,可以使用以下代码:

HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url); // http://www.google.com

client.executeMethod(method);

String result = method.getResponseBodyAsString();

在结果变量中,您将获得页面的源代码,在本例中为Google的主搜索页面。所以你可以随心所欲。例如,您可以使用Java Thread继续刷新页面,并根据结果执行任何操作。

您可以在Commons HTTP-Client Page

上找到更多信息

答案 3 :(得分:0)

Wget for Windows可能会有所帮助,如果你的意思是“终端”而不是特别是DOS操作系统。还有一些名为bitsadmin的东西(我不熟悉),我也在搜索中找到了这个:Jaunt - Java Web Scraping & Automation,如果这有帮助的话。我不是一个Java人,但希望能指出你正确的方向。