java爬虫 教程_Java爬虫其实也很简单,教你实用的入门级爬虫

article/2025/8/27 8:16:00

原标题:Java爬虫其实也很简单,教你实用的入门级爬虫

任何语言都是可以爬虫的,只要你懂的常用的http协议啥的就可以模仿浏览器的行为获取你想要的数据。这里我将教大家一个简单实用的案例:如何获取全民K歌的下载链接。

ps: 这主要是教大家一个入门级的爬虫,不是希望大家去跳过vip下载...

那种专业fildder这类软件抓包我就不提了,免得文章显得更加复杂化。

推荐用谷歌浏览器容易看。

1.打开浏览器进去一个分享链接

2.按F12进入开发者模式

3.点击NetWork

4.最好重新刷新一下页面看下所有访问路径

c96c9cbc2ce45cec6df86cd7a3777a38.png

只要是网页浏览器就可以抓到所有的访问请求。接下来就是寻找那个音乐的链接了:

0fddc3f735faef39c7e25deb753f4fe0.png

等你找到你会发现很显然,那个路径没有任何规律,也不知道下载路径如何而来。但是只要思想不滑坡,办法总比困难多。我们找一下是否可以在HTML这些直接找到现成的链接,音乐的播放标签一般都是audio

我们去Element查找这个节点的时候可以发现确实有下载链接

c896474ed74a06ceaac1ac89a9a5b5e8.png

这样我们大概知道链接的地址了!我们就可以放开手撸代码了!

这里我推荐用Jsoup,我用的是版本是1.11.2。

maven:http://www.mvnrepository.com/artifact/org.jsoup/jsoup/1.11.2

打印出来的HTML不出所料,就找不到audio的标签,很明显是后续才加载出这个标签来播放音乐的。那这个下载地址是哪里来的呢。我们可以在打印出来的HTML可以找到其他线索:

不出所料,在所有标签中 的第三个我们发现了猫腻。

2f2e21f95bb30add5cce9240a85aa281.png

所有的数据都在这个标签里,包括评论,送花,歌曲链接等等所有都在里面。我们拿到标签里的内容就可以了。里面的参数竟然是标准的json格式更加天助我也!我们用代码去掉闲杂人等。

接下来就是Json解析成自己的实体类对象啥的了。这块没啥好说的,不是我们的教程范围。我一般用的simpleJson,gson,fastJson。阿里巴巴的我用的多一点。

最后我把这段代码功能接入我的微信公众号实现效果:

2717a288bd6c39cd48c4eb7a866ed61d.png

该教程仅供学习参考返回搜狐,查看更多

责任编辑:


http://chatgpt.dhexx.cn/article/Rcc6boDd.shtml

相关文章

java爬虫视频教程_JAVA开发教程:java视频教程java爬虫实战项目 百度网盘

– 源码 – 0 B |- 猫了个咪-更多IT精品课程.html – 41.00 kB |- 猫了个咪–it视频论坛.url – 51 B |- 22_项目优化三:邮件提醒.mp4 – 345.30 MB |- 21_项目优化二:爬虫项目监控[itjc8.com].mp4 – 353.40 MB |- 20-4_项目优化一:解决频繁…

手把手Java爬虫教学 - 1. 了解爬虫

一、什么是爬虫 先来看一下百度百科,了解一下爬虫~ 我们通过爬虫主要的目的就是爬取数据,好比 A 网站、B 网站有我们所需要的内容,但是这两个网站并没有给我们提供接口,那我们怎么能拿到上面的数据呢? 这时候我们就可…

java爬虫教程:模拟用户表单登录

转自:http://xiaolongonly.cn/2016/06/01/Reptile3/ 这个是爬虫教程第三篇,教大家如何模拟用户表单登录。 前期准备: JSOUP 1.83 jar包 Eclipse 任意版本能运行java就行 谷歌浏览器 第一步:依然是分析页面结构 我们要模拟C…

REmap包介绍及使用

2019独角兽企业重金招聘Python工程师标准>>> #REmap包简介 #包安装 #remapH函数 #remapH案例 #get_theme函数 #remapC函数 #markLineControl函数 #markPointControl函数 #remapC案例 REmap包简介 REmap包是R与echart的对接,在R里调用echar的api直接作图&…

用R语言绘制动态地图,代码奉上!(REmap包详解)

options(remap.ak="MY07CLhm3wKi4N2tQ6WP4kzz21BBZagI") 安装包 library(devtools) install_github(badbye/baidumap) install_github(lchiffon/REmap) baidumap包函数说明 getBaiduMap函数 getBaiduMap(location, width = 400, height = 400, zoom = 10, scale = …

remap()

学习自:【OpenCV入门教程之十七】OpenCV重映射 重映射,就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一一对应的。一般情况下&#xff…

REmap绘制地图

本文出自: http://blog.csdn.net/wzgl__wh/article/details/53108754 REmap这个包是通过调用百度地图API的一个程序包,与Google的ggmap包相比,不用翻墙就可以使用。其函数主要有:remap(),remapB()、remapC()、remapH()…

R语言:使用REmap绘制超炫酷的地图

REmap这个包是通过调用百度地图API的一个程序包,与Google的ggmap包相比,不用翻墙就可以使用。其函数主要有:remap(),remapB()、remapC()、remapH()四个。该程序包目前要github网站上,因此我们需要从github上面下载安装。 install.packages("devtools")#如果安装…

ioremap()

活动地址:CSDN21天学习挑战赛 前言 之前,我们使用 devmem 命令的方式,直接操作寄存器,控制 LED 的亮灭。 今天,我们在内核中使用 ioremap() 来实现该功能。 物理地址 vs 虚拟地址 在嵌入式 Linux 中,通常…

STM32和GD32的GPIO引脚的default(默认) alternate(引脚复用) remap(引脚重映射)三种用法 别把复用和重映射当一回事儿

STM32有很多内置外设,这些外设的外部引脚都是与GPIO复用的。也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用 重映射就是引脚重映射,本来每个内置外设都有原来设…

OpenCV函数remap详解

OpenCV函数remap详解 remap的作用是将原影像映射到目标影像的函数。 这是OpenCV文档中的说明。 但这个描述给人的感觉是,云里雾里,到底是需要计算目标到原的映射关系,还是原到目标的映射呢。 经过我的实验发现是需要给出目标到原的映射关系…

remap函数

cvRemap( img1, img1r, mx1, my1 );在这个函数中mx1、my1是由前面函数计算出的校正系数,其指明了具体像素重新分配的位置。在learning opencv的12.3自带程序中可以发现,一般来说my1的值是比较集中的,mx1的值是比较分散的,这满足基…

Python-OpenCV 的 remap函数

恒等映射 result_img 和 原图一模一样 import cv2 import numpy as npimg cv2.imread("OpenCV.png") rows, cols, ch img.shape mapx np.ones(img.shape[:2], np.float32) mapy np.ones(img.shape[:2], np.float32) for i in range(rows):for j in range(cols)…

STM32重映射(Remap)

STM32重映射(Remap) 在外设的初始化中默认为Default重映射函数复用功能 在外设的初始化中默认为Default 在参考手册中 均有USART1的功能,但是若是想要用PB6与PB7作为USART1_TX与USART1_RX则需要用到重映射。 使用PA9 PA10只需要直接配置就…

Opencv remap函数

Opencv remap函数 函数签名实例应用亚像素信息扭曲特效 函数签名 void cv::remap ( InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderMode BORDER_CONSTANT, const Scalar & borderValue Scalar() ) 将通用几何变换…

OpenCV图像处理——重映射 remap函数

在《学习OpenCV3,OReilly系列丛书》中的第11章常见的图像变换中讲到的“任意映射”,Remap函数。函数cv::remap通常用来纠正校准的立体图像,包括图像变形和图像扭曲。其实这个函数在无人机拍摄延时摄影(使用电子防抖算法&#xff0…

重映射:remap()函数

remap()函数会根据指定的映射形式,将原图像进行重映射几何变换,基于公式如下: dst(x, y) src( mapx(x, y), mapy(x, y) )函数原型C(程序 / 20): void remap( InputArray src, OutputArray dst, InputArray map1, In…

OpenCV:remap()简单重映射

学习自:【OpenCV入门教程之十七】OpenCV重映射 重映射,就是把一幅图像中某位置的像素放置到另一个图片指定位置的过程。为了完成映射过程, 我们需要获得一些插值为非整数像素的坐标,因为源图像与目标图像的像素坐标不是一一对应的。一般情况下&#xff…

JS获取对象键值对中key值的方法

使用Object.keys Object.keys( ) 会返回一个数组,数组中是这个对象的key值列表 所以只要Object.keys(a)[0], 就可以得只包含一个键值对的key值 下面是MDN中对Object.keys的描述 Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组&…

C# 键值对

1.初始化一个键值对 1 //初始化定义一个键值对&#xff0c;注意最后的括号 2 Dictionary<int, string> dic new Dictionary<int, string>(); 2.为键值对添加元素 1 //键值对的Add函数 2 dic.Add(2, "zhao"); 3 dic.Add(4, "qian"); 4 dic…