如何在Java中与网页交互?

时间:2014-01-22 15:15:18

标签: java http webpage interaction

现在,我是Java中的初学者。我以某种方式设法理解以下代码。

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

 public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL yahoo = new URL("http://www.yahoo.com/");
        URLConnection yc = yahoo.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }
}

我实际上已经付出了相当大的努力,所以请理解我是初学者。我想与网页互动。从代码中,我了解到网页的任何信息都会被简单地显示出来。我只是需要你的帮助来建议我接下来要学习。

我希望我的网页转到网页,登录 然后单击一个按钮 在两列之间进行比较,如果不相等则报告给我。

我确实在HTTP上阅读,我知道webinteraction是可能的。 人们的代码超出了我的理解范围。

我不太了解继承或封装[仍在学习](如果需要)

使用我提供的代码,是否可以添加我的要求? 因为人们会给出一个带衬里的代码或30行代码...请注意我不是很好。

我做过研究。我只想要有人给我指导。由于有这么多方法,我开始感到困惑。

我认为有人告诉我php在这件事上更容易,但在php中我甚至都不知道。 (我知道它是OOPS语言,但仍然)

真正感谢任何形式的指导。

1 个答案:

答案 0 :(得分:3)

如果您确实需要与网站互动,那么selenium / webdriver非常适合您的需求:

http://code.google.com/p/selenium/wiki/GettingStarted

Google搜索示例:

package org.openqa.selenium.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class Example  {
    public static void main(String[] args) {
        // Create a new instance of the html unit driver
        // Notice that the remainder of the code relies on the interface, 
        // not the implementation.
        WebDriver driver = new HtmlUnitDriver();

        // And now use this to visit Google
        driver.get("http://www.google.com");

        // Find the text input element by its name
        WebElement element = driver.findElement(By.name("q"));

        // Enter something to search for
        element.sendKeys("Cheese!");

        // Now submit the form. WebDriver will find the form for us from the element
        element.submit();

        // Check the title of the page
        System.out.println("Page title is: " + driver.getTitle());
    }
}