Java爬虫-爬取各网络平台影视URL地址
程序员文章站
2022-04-02 10:13:39
目的爬取目前正在热播的电视剧《斗罗大陆》视频,并破解免费观看????准备爬取地址:斗罗大陆环境准备:搭建WebMagic,不知道的可以下载源码,很快入手。码云地址:https://gitee.com/flashsword20/webmagic页面分析1.获取每集的视频地址其实很简单,视频链接都放在类名为item的span里2.视频解析既然获取到了每一集的视频地址,但我们需要的是免费观看,结合我的另一篇博客Vip影视的解析接口,既在视频地址前加解析接口URL就可以破...
目的
学习Java爬虫技术,爬取网络平台的影视地址,解析为我们自己需要的URL地址。
准备
爬取地址:https://v.qq.com/x/cover/mzc00200js3mdvw.html
环境准备:搭建WebMagic,不知道的可以直接下载代码,很快入手,也可以参考我的另一篇博客 基于WebMagic爬取某豆瓣电影评论。
码云地址:https://gitee.com/flashsword20/webmagic
页面分析
1.获取每集的视频地址
打开爬取网页,按F12,找到每一集的url存放标签,
查找发现视频链接都放在类名为item的<span>里。
2.视频解析
既然获取到了每一集的视频地址,结合我的另一篇博客 Vip影视的解析接口,既在视频地址前加解析接口URL就可以解析视频。
代码
获取到电视剧的所有视频地址,代码自然很简单就出来了
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.ResultItems;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.FilePipeline;
import us.codecraft.webmagic.processor.PageProcessor;
import java.util.List;
import java.util.Map;
public class TengXunPageProcessor implements PageProcessor {
private Site site;
public TengXunPageProcessor() {
this.site = Site.me().setRetryTimes(3).setSleepTime(300); // 设置站点重试次数3 间隔300ms
}
@Override
public void process(Page page) {
page.putField("title", page.getHtml().xpath("//title/text()")); //爬取网页标题
// page.putField("html", page.getHtml().toString()); //爬取整个页面的html
page.putField("urlList", page.getHtml().css("span.item").links().all()); // 我们要爬取的核心信息内容
page.putField("titleList", page.getHtml().css("span.item>a", "text").all());
}
@Override
public Site getSite() {
//settings
return site;
}
public static void main(String[] args) {
Spider spider = Spider.create(new TengXunPageProcessor()).addPipeline(new FilePipeline("E:\\pipeline", ".txt"));
ResultItems resultItems = spider.<ResultItems>get("https://v.qq.com/x/cover/mzc00200js3mdvw.html");// 爬取并获得爬取结果
Map<String, Object> map = resultItems.getAll();
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue()); //打印爬取的所有内容
}
List<String> urlList = (List<String>) map.get("urlList");
List<String> titleList = (List<String>) map.get("titleList");
System.out.println("=====================分隔线===================\n爬取结果如下:");
if (titleList.size() == urlList.size()) {
for (int i = 0; i < urlList.size(); i++) {
System.out.println(titleList.get(i) + ": https://vip.52jiexi.top/?url=" + urlList.get(i)); // 打印解析后的地址
}
}
spider.close();
}
}
运行
结果如下
爬取成功。
拓展
其他视频方式也一样,如电影,动漫等,只需要替换爬取地址就行。
其他平台爬取方式类似。
使用代理IP,避免反爬虫或IP被封。给大家分享一个代理IP,需要的朋友可以去了解下,http://i0k.cn/5dAZa ????
---------------------------------------------------------------------------------------------------------------------------------------------------
有兴趣的朋友可以加Q群交流学习,群里有更多源码,学习资料,大神解答。
QQ群:741909960
本文地址:https://blog.csdn.net/qq_35402412/article/details/114233078