Java使用Jsoup获取网页指定元素

需要抓取网页上面的指定元素:
在这里插入图片描述
本来考虑使用webMagic,但是那个感觉有点复杂了,这里直接使用Jsoup来抓取:
1、导入依赖:

 <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.14.1</version>
 </dependency>

2、创建连接,解析页面元素

首先定义url:

 String url="https://ncbi.nlm.nih.gov/gene/51185";

再创建连接,通过get请求,拿到网页的document对象:
简单版的:

Document document = Jsoup.connect(url).get();

但是需要在类上抛出异常,这里使用捕获的方式以便处理错误:

 Connection conn = Jsoup.connect(url);
        Document document = null;
        try {
            document = conn.get();
        } catch (IOException e) {
            e.printStackTrace();
            // handle error
        }

分析页面元素:
在这里插入图片描述
选择到对应的元素:这里jsoup的语法就不贴了

 Element firstHeading = document.getElementsByClass("rprt-section gene-summary").first();
        Elements noline = firstHeading.getElementsByTag("dd");
        String element = noline.get(1).text();

但是抓取的内容有点多了:
在这里插入图片描述
这里只需要cereblon,可以查出provided在结果中第一次出现的位置,然后使用字符串截取的方式,拿到需要的结果:
在这里插入图片描述
完整代码如下:

 public static void main(String[] args)  {

       String url="https://ncbi.nlm.nih.gov/gene/51185";

      Connection conn = Jsoup.connect(url);
        Document document = null;
        try {
            document = conn.get();
        } catch (IOException e) {
            e.printStackTrace();
            // handle error
        }

        Element firstHeading = document.getElementsByClass("rprt-section gene-summary").first();
        Elements noline = firstHeading.getElementsByTag("dd");
        String element = noline.get(1).text();
        int provided = element.indexOf("provided");
        String fullName = element.substring(0, provided);
        System.out.println(fullName);

    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Jsoup 是一个开源的 HTML 解析器库,可以用来实现简单的 Web 页面爬取。以下是一个简单的 Java Jsoup 爬虫实现: 1. 导入 Jsoup 库 首先需要在项目中导入 Jsoup 库,可以在 Maven 中添加以下依赖: ``` <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version> </dependency> ``` 2. 获取页面内容 通过 Jsoup 的 connect() 方法连接指定的 URL,并使用 get() 方法获取页面内容,如下所示: ``` String url = "https://www.example.com"; Document doc = Jsoup.connect(url).get(); ``` 3. 解析页面内容 使用 Jsoup 的 select() 方法选择页面中需要抓取的元素,并使用 text() 或者 attr() 方法获取其文本内容或属性值,如下所示: ``` Elements links = doc.select("a[href]"); for (Element link : links) { String href = link.attr("href"); String text = link.text(); System.out.println(text + " -> " + href); } ``` 以上代码会抓取页面中所有的链接,然后输出链接的文本和地址。 4. 完整代码 ``` import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class MyCrawler { public static void main(String[] args) { String url = "https://www.example.com"; try { Document doc = Jsoup.connect(url).get(); Elements links = doc.select("a[href]"); for (Element link : links) { String href = link.attr("href"); String text = link.text(); System.out.println(text + " -> " + href); } } catch (Exception e) { e.printStackTrace(); } } } ``` 以上代码可以抓取指定页面中的所有链接,并输出链接的文本和地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值