实例练习----电影天堂抓取下载链接
2018-06-03 22:12
85 查看
原文链接:http://www.cnblogs.com/caoleiCoding/p/9130778.html
说明:由于页面结构的问题,目前仅支持抓取前17页;
废话不多说,直接上代码:
package com.sysker.util; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.util.Date; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.junit.Test; public class getVideoUrls { private void getHtmlSources() { BufferedWriter writerPage = null; Document doc = null; try { writerPage = new BufferedWriter(new FileWriter("ygdy8-"+ System.currentTimeMillis() + ".html")); doc = Jsoup.connect( "http://www.ygdy8.net/html/gndy/dyzz/list_23_1.html").get(); Element list = doc.getElementsByClass("co_content8").first(); Elements bs = list.getElementsByTag("b"); String lastPage = list.getElementsByTag("div").first() .getElementsByTag("a").last().attr("href"); int page = Integer.parseInt(lastPage.substring( lastPage.length() - 8, lastPage.length() - 5)); writerPage.write("<html><head><title>电影天堂最新电影</title></head><h1>电影天堂最新电影</h1><body>"); writerPage.write("<p>日期:" + new Date() + "</p><br/>"); System.out.println(page); for (int i = 0; i < 17; i++) { doc = Jsoup.connect( "http://www.ygdy8.net/html/gndy/dyzz/list_23_" + (i+1) + ".html").get(); list = doc.getElementsByClass("co_content8").first(); bs = list.getElementsByTag("b"); System.out.println("===============第" + (i + 1) + "页================"); for (Element element : bs) { String url = element.getElementsByTag("a").first() .attr("abs:href"); writerPage.write("<li><a href="+ "\"" + getDownloadUrls(url) + "\"" + ">" +element.text() +"</a></li><br/>\n"); writerPage.flush(); } } writerPage.write("</body></html>"); writerPage.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (writerPage != null) { writerPage.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } private String getDownloadUrls(String url) throws IOException { Document doc = Jsoup.connect(url).get(); Element span = doc.getElementById("Zoom").getElementsByTag("span") .first(); String downloadUrl = span.getElementsByTag("table").last() .getElementsByTag("a").first().attr("href"); return downloadUrl; } @Test public void testName() throws Exception { long startTime = System.currentTimeMillis(); getHtmlSources(); long endTime = System.currentTimeMillis(); long useTime = (endTime - startTime) / 1000; System.out.println("耗时" + useTime + "s"); } }
用到的包:
生成页面效果:
- 右键复制链接可以直接复制至百度云或迅雷下载
声明:本教程仅供交流学习参考,切勿用于其他用途!
转载于:https://www.cnblogs.com/caoleiCoding/p/9130778.html
相关文章推荐
- 练习---打印出电影天堂中电影的下载链接
- Java爬虫实战(二):抓取一个视频网站上2015年所有电影的下载链接
- java爬虫框架——jsoup的简单使用(爬取电影天堂的所有电影的信息,包括下载的链接)
- Python爬虫实战(八):爬取电影天堂的电影下载链接
- 爬虫学习(一)---爬取电影天堂下载链接
- Java爬虫实战(二):抓取一个视频网站上2015年所有电影的下载链接
- 爬取电影天堂下载链接
- 使用Tornado框架写了一个用于获取电影下载链接的API接口,欢迎大家使用 :-)
- node.js爬虫爬取电影天堂,实现电视剧批量下载。
- 使用htmlparser爬虫技术爬取电影网页的全部下载链接
- Python抓取电影天堂电影信息的代码
- python 抓取电影天堂电影信息放入数据库
- python 爬取电影下载链接
- 用php实现一个简单的爬虫,抓取电影网站的视频下载地址
- Python自动化(二)使用Beautifu Soup爬取电影下载链接
- Python爬虫 -- 抓取电影天堂8分以上电影
- 微信小程序豆瓣电影实例源码下载
- PHP生成迅雷、快车、旋风等软件的下载链接代码实例
- 用python做一个可以下载电影天堂最新电影的爬虫
- C# 抓取网页的img src带参数的图片链接,并下载