从网站上抓取文字

时间:2013-12-09 23:36:58

标签: java

我有一小部分代码可以从网站上获取html代码。我有兴趣解析代码的某一部分,但有几次。更具体地说,我正在制作一个pokedex,并希望解析一些bulbapedia页面中的某些描述,例如http://bulbapedia.bulbagarden.net/wiki/Bulbasaur_(Pok%C3%A9mon)。我如何使这个解析器只采用bulbasaur的描述?我如何创建任何边界来停止和开始?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class WebCrawler{
    public static void main(String[] args) {
        try {
            URL google = new URL("http://pokemondb.net/pokedex/bulbasaur");
            URLConnection yc = google.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
            String inputLine;
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);

            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

尝试使用Jsoup

Syntax是JQuery选择器喜欢的。

答案 1 :(得分:0)

您可以使用Jsoup,使用此代码即可获得Bulbasaur的说明:

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;


public class Test {

    public static void main(String[] args) throws IOException {

        Document doc = Jsoup
                .connect(
                        "http://bulbapedia.bulbagarden.net/wiki/Bulbasaur_(Pok%C3%A9mon)")
                .get();
        Elements newsHeadlines = doc.select("#mw-content-text p");
        for (Object o : newsHeadlines) {
            System.out.println(o.toString());
        }

    }

}

mw-content是主要的div。