2,对于分页的网站(视频网站一般还会分页的啦)分析url分页的方式,找规律
优采云 发布时间: 2020-08-12 12:26环境:jdk1.8、win10、科学上网、eclipse
一直想学下写爬虫,满足一下自己的小心愿。正好春节有时间,就研究了一下,网上的资料良莠不齐,于是我决定自己整理一份,按照我的步骤做,一定是可以的,成功了记得回去点赞。
案例里爬了一个大型视频网站,最终的疗效可以达到手动下载该网站的全部视频,且每位视频都有他该有的名子。
如果你要拿来爬其他网站,代码里好多地方(比如url,url的解析,字符串的截取,下载的位置)是须要依照具体页面进行更改的,我只能提供一个思路而已,当然要爬我爬的这个网站的话其实就不需要改了。
一、思路:1,获得要爬的网站主页url2,对于分页的网站(视频网站一般还会分页的啦)分析url分页的方式,找规律3,在每位分页上找出视频页面的url,找规律4,在视频页面,分析url,找出视频的实际下载地址,找到规律5,开始下载6,开始happy!!!二、步骤:1,mian函数,没哪些好说的
public static void main(String[] args) throws Exception {
final String SCORE_URL = "https://www.xxxx/xxx";// 主页(手工打码)
final String DOWNLOAD_DIR = "F:/video/";// 下载目录
System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2,SSLv3");
System.err.println("爬取子页面...");
List allArticle = getAllVideoPage(SCORE_URL);
System.err.println("爬取视频...");
Map urlMap = getUrlInSource(allArticle);
System.err.println("本次下载文件数量:" + urlMap.size());
System.err.println("开始下载...");
downloadMovie(DOWNLOAD_DIR, urlMap);
}
2,这里网站的视频通常不会放到首页上,且视频网站一般还会分页的。所以须要先剖析分页的url,然后剖析步入视频页面的url,然后保存所有视频页url到一个列表里。难点在于对页面的url剖析
例如这是分页的url,这个就有显著的规律了。我们只须要更改 page= 后面的数字就可以获得每位分页的url
然后就要剖析步入每位视频页面的url,chrome F12 好我们来看
标出的这行就是步入视频页面的url,这个相信你们就会找,我就不细说了。
然后我们须要将href=后面的双引号里的东西截取下来,然后拼接成视频页面的完整url,具体看我代码
最后把所有视频页的url存入一个list,下一步
<p> /**
* 爬所有视频页 存入一个list
*
* @param source 主页
* @return 视频页 列表
* @throws Exception
*/
private static List getAllVideoPage(String source) throws Exception {
List urls = new ArrayList();
for (int j = 1; j