jsoup解释:
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
不多废话,上代码。
-
添加maven依赖
maven依赖
<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.12.1</version> </dependency>
如果不用maven可以在在这里搜索jsoup
-
查看页面的dom结构(后面需根据结构获取相应的标签元素)
列表页的dom结构如下图:
下载页的dom结构如下图:
-
功能代码
public static void jsoupList(String url){ try { //列表页 get()是get方法得请求 还可以通过timeout设置超时时间 Document document = Jsoup.connect(url).get(); Elements elements = document.select("div#content > div.entry_box > div.archive_box"); for (Element element:elements){ // 获取美剧标题 String title = element.child(0).child(1).child(0).child(0).ownText(); //获取下载页面链接 String href = element.child(0).child(1).child(0).child(0).attr("href"); System.out.println(title); System.out.println(href); //下载页 Document downloadDoc = Jsoup.connect(href).get(); Elements elementAs = downloadDoc.select("div#entry a"); for (Element elementA : elementAs) { //下载地址 String downloadAdr = elementA.attr("href"); String atitle = elementA.ownText(); System.out.println(atitle+"\t"+"下载地址:"+downloadAdr); } System.out.println("================="); } } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { //此处只爬取了第一页,可以循环取爬取所有页面,这里不做演示 String url="http://cn163.92game.net/ddc1/index.html"; jsoupList(url); }
-
运行测试…
测试结果如下
完成!