Jsoup爬取网易新闻

话不多说,先看代码!

/**
 * Created by david on 2017-7-5.
 * 爬取网易新闻页面
 */

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

import java.io.IOException;

public class JsoupDemo {

    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width-1) + ".";
        else
            return s;
    }

    public static void getContent(String url) {
        try {
            Document doc = Jsoup.connect(url).get();
            Elements content_main = doc.getElementsByClass("post_content_main");
            String title = content_main.first().getElementsByTag("h1").first().text();
            System.out.println(title);
            String time_source = content_main.first().getElementsByClass("post_time_source").first().text();
            System.out.println(time_source);
//            String source = content_main.first().getElementById("ne_article_source").text();
//            System.out.println(source);

            Elements contents = content_main.first().getElementById("endText").select("p");
            StringBuffer buffer = new StringBuffer();
            for (Element e : contents) {
                buffer.append(e.text() + "\n");
            }
            String content = buffer.toString();
            System.out.println(content);

            //获取图片URL
            Elements media = doc.select("[src]");
            for (Element src : media) {
                if (src.tagName().equals("img")) {
                    System.out.println(src.tagName() + "  " + src.attr("abs:src") + " " + src.attr("width") + " * " +
                            src.attr("height") + " " + trim(src.attr("alt"), 20));
                }
            }

            //获取链接
            Elements links = doc.select("a[href]");
            for (Element link : links) {
                System.out.println(link.tagName() + "  " + link.attr("abs:href") + "  " + link.attr("rel"));
            }
            ;
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void main(String args[]) {
 //       getContent("http://tech.163.com/17/0705/19/COJSA0OJ00097U7T.html");
  //      getContent("http://tech.163.com/17/0703/17/COEF89D700097U7R.html");
        getContent("http://news.163.com/17/0705/11/COIVM1LK000189FH.html");
    }
}

输出:
这里写图片描述
下面还有一系列的a标签

网易新闻的页面结构很清晰,每一个网易新闻页面都可以用本代码爬取,只需要把URL网址作为参数传入即可。

用到了Jsoup-1.10.3.jar包
参考链接:https://jsoup.org/cookbook/extracting-data/example-list-links
Jsoup API : https://jsoup.org/apidocs/overview-summary.html

使用oup 爬取网易云音乐单曲可以分为以下几个步骤: 1. 打开网易云音乐单曲页面,获取页面源代码。 2. 使用 Jsoup 解析页面源代码,获取需要的信息。 3. 处理获取到的信息。 下面是一个简单的示例代码(需要注意的是,爬取网站信息需要遵守相关法律法规和网站的使用协议): ``` import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; public class NetEaseMusicCrawler { public static void main(String[] args) throws IOException { String url = "https://music.163.com/song?id=1436709406"; // 单曲页面链接 Document document = Jsoup.connect(url).get(); // 获取页面源代码 Element songInfo = document.selectFirst(".cnt .tit"); // 获取歌曲信息 String songName = songInfo.text(); // 获取歌曲名称 String artistName = songInfo.selectFirst("span").text(); // 获取歌手名称 Elements lyrics = document.select(".bd .bd-open"); // 获取歌词 String lyricText = lyrics.text(); // 获取纯文本歌词 System.out.println("歌曲名称:" + songName); System.out.println("歌手名称:" + artistName); System.out.println("歌词:" + lyricText); } } ``` 在上面的代码中,我们首先定义了一个单曲页面链接,然后使用 Jsoup.connect(url).get() 方法获取该页面的源代码。接着,我们使用 CSS 选择器获取歌曲信息和歌词,并最终输出获取到的信息。 需要注意的是,上述代码仅供参考,具体的实现方式可能因网站结构的改变而略有不同,需要根据实际情况进行修改。此外,在爬取网站信息时,需要注意遵守相关法律法规和网站的使用协议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值