2012-04-03 49 views
0

我使用的是一个Java程序的硒API(http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html)。停止在硒下载页面API

当我使用driver.get(completeUrl);方法,硒打开一个新的Firefox窗口与我在“completeUrl”中提到的网站。

现在,有很多网站有视频,音乐和其他重量的内容,我不想在使用硒火狐时下载。这是因为我需要的信息包含在网站的第一个KB中。

我该如何不失时间下载所有这些内容?有一种Selenium API的方法,允许我在一段时间或KB后停止在Firefox中下载网页。或者可以用一些java方法来完成?

请帮忙。

+0

你为什么使用硒?我认为那是你想要做的错误的技术。借助Selenium,您可以模拟用户与您网站的互动以测试其功能。你想要达到什么目的?源代码?对此,有更快更简单的方法。 – Tarken 2012-04-03 08:23:57

+0

是的,我想实现页面的第一个字节的源代码。如果我需要的信息存储在第一个字节中,我不想下载所有页面。 – RazorMx 2012-04-03 08:36:47

回答

0

Selenium没有办法停止下载。 Selenium对于这类工作来说太强大了,它被设计为与浏览器交互,并且像在电脑前坐着的人一样行事。

如果您只是想要HTML代码,请使用How to fetch HTML in JavaHow do you Programmatically Download a Webpage in Java中的程序。

+0

顺便说一句,我刚刚意识到,如果该视频是一个Youtube视频,那么你可以停止在视频本身上下文菜单中的下载... – 2012-04-03 21:45:18

+0

一些讨厌的网站不允许以这种方式抓取它们,唯一的选择是使用硒。如果您认为问题不对,请使用评论。你没有回答这个问题。 – 2017-04-09 01:50:04

0

尝试做这样的:

import java.io.*; 
import java.net.URL; 

public class WebsiteReader{ 
    public static BufferedReader read(String url) throws Exception{ 
     return new BufferedReader(new InputStreamReader(new URL(url).openStream()));} 

public static void main (String[] args) throws Exception{ 
    BufferedReader reader = read(args[0]); 
    String line = reader.readLine(); 

    while (line != null) { 
     System.out.println(line); 
     line = reader.readLine(); }} 
} 

ü还可以在这个话题我们来看一看: Get source of website in java 应该有足够的信息来实现你想要的。