尝试制作Java Web Scraper

时间:2019-05-24 00:22:01

标签: java web-scraping

我正在尝试制作Java Web Scrap,但我在代码中的某个地方迷路了 应该如何提取给定网页中的Name,Email和phone no并导出为纯文本。

我也在其中使用jsoup库。

但是无法弄清楚我该如何完成这项任务

这是我的代码的样子。

import org.jsoup.*;
import org.jsoup.helper.*;
import org.jsoup.nodes.*;
import org.jsoup.select.*;

import java.io.*; // Only needed if scraping a local File.

public class javaapplication6 {


    public javaapplication6() {

        Document doc = null;

        try {
            doc = Jsoup.connect("http://cs.qau.edu.pk/faculty.php/").get();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }

        Elements table = doc.getElementsByClass("tbl");
        Elements rows = table.getElementsByTag("TR");

        for (Element row : rows) {
            Elements tds = row.getElementsByTag("TD");
            for (int i = 0; i < tds.size(); i++) {
                if (i == 1) System.out.println(tds.get(i).text());
            }
        }

    }

    public static void main (String args[]) {

        new javaapplication6();

    }

}```


2 个答案:

答案 0 :(得分:1)

您没有在此处发布HTML代码。但是您可以像这样简单地实现所需的功能,

Document doc = Jsoup.connect("http://cs.qau.edu.pk/faculty.php/").get();

// If there is table id you can put that below -> table[id=tableid]
for (Element table : doc.select("table[id=]")) {
     for (Element row : table.select("tr")) {
        Elements tds = row.select("td");
        System.out.println(tds.get(0).text() + "->" + tds.get(1).text() + "->" + tds.get(2).text());
     }
}

答案 1 :(得分:0)

尝试以下代码以获取名称和详细信息,

connect(String URL)方法创建一个新的Connection,然后get()获取并解析HTML文件。

然后我们找到匹配的元素,然后使用foreach循环检索名称和详细信息。

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class CsDotQauDotEduPk {

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

    Document doc = Jsoup.connect("http://cs.qau.edu.pk/faculty.php/").get();

    Elements ele = doc.select("div.container td");
    for (Element e : ele) {

        Elements el = e.select("strong").eq(0);
        Elements e2 = e.select("td p").eq(1);

        final String name = el.text();
        final String details = e2.text();

        System.out.println(name+" >> "+ details);
    }}}

输出:

  

博士Onaiza Maqbool >>电子邮件:onaiza@qau.edu.pk电话:+ 92-51-9064 2060

     

博士Khalid Saleem >>电子邮件:ksaleem@qau.edu.pk电话:+ 92-51-9064 2050

     

博士Shuaib Karim >>电子邮件:skarim@qau.edu.pk电话:+ 92-51-9064 2055

     

博士Rabeeh Ayaz Abbasi >>电子邮件:rabbasi@qau.edu.pk电话:+ 92-51-9064   2050

     

博士Ghazanfar Farooq >>助理教授

     

博士Muddassar Azam Sindhu >>电子邮件:masindhu@qau.edu.pk电话:   + 92-51-9064 2066

     

博士Akmal Saeed Khattak >>电子邮件:akhattak@qau.edu.pk电话:   + 92-51-9064 2161

     

博士穆罕默德·阿西姆·拉菲克>>

     

博士乌梅尔·拉希德(Umer Rasheed)>>

     

Memoona Afsheen Malik >>电子邮件:memoona@qau.edu.pk电话:+ 92-51-9064   2064

     

Ifrah Farrukh Khan >>电子邮件:(ifrahkhanqau@yahoo.com)电话:   + 92-51-9064 2005

     

S。纳奇先生>>电子邮件:smnaqi@qau.edu.pk电话:+ 92-51-9064 2059