爬虫生涯中独立完成的第一个案例!!!!

新手入门真的很推荐尝试的一个练手的站——网易云评论。(仅供学习研究,如侵权联系删除)

话不多说直接切入主题,我们打开网易云随便找一个音乐。网易云音乐,对他这个页面进行分析,首先我们先抓包。

 OK,我们找到了这个评论接口,我们可以看到这里面有两个加密参数,我们对他们进行分析。

 我们直接在全局搜索 快捷键 shift + ctrl +f

 如果不想搜索,我们也可以打XHR断点,或者跟栈一步一步找,我懒我就直接全局搜索了。点进去之后是下面这样,params和encSecKey 都是从bMs6m里面获得的,然后我们发现bMs6m就在上面那一行,所以我们发现了这个加密位置就是这里,

 打上断点跟进去发现url在这里被传入进去,并不是我们要找的那个接口 我们要找的接口是评论接口而这个是啥我也不知道~~~~ 我们可以释放断点看看他有什么变化。

 果然!!!点了两下,接口就被发现了,然后我们对加密函数,也就是打断点的地方的参数分析。

 第一个JSON.stringify(i5n)  直接在控制台打印,发现是个字符串

 第二个bsi3x(["流泪", "强"]) 在控制台打印也是个字符串,第三个第四个以此类推,我懒我不弄了。

四个参数都弄出来之后 我们发现除了第一个是变化的,剩下三个是不变的(打开另一个歌曲的页面自己去试!我说的没错!!!!)

然后就要对加密函数进行分析了,明显加密函数是window.asrsea

追进去!!!!!!

 追进去之后定位到这个函数,我们直接TM抠出来

 

 别忘了传进去我们需要的参数(注:rid":"R_SO_4_2019620319","threadId":"R_SO_4_2019620319" 这两个参数中,R_SO_4_后面加的是歌曲id)

args ='{"rid":"R_SO_4_2019620319","threadId":"R_SO_4_2019620319","pageNo":"1","pageSize":"20","cursor":"-1","offset":"0","orderType":"1","csrf_token":""}'
args1 = "010001"
args2 = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7"
args3 = "0CoJUm6Qyw8W8jud"

然后我们开始,开始运行,扣代码

缺啥补啥这缺a,我们在浏览器的控制台console去搜索a然后补上!缺啥补啥!记住!

在补了两三行后,我们发现报 CryptoJS is not defined ,然后发现这是一个AES加密

我们直接导库,先在终端(terminal)输入 npm i crypto-js 这里要注意一下 一定要是

crypto-js 不能是 cryptojs,这两个东西虽然很像,但是不是一个东西!仔细!!!!
var CryptoJS = require("crypto-js")然后把它补上 我一般都是补在程序的第一行。

然后我们缺啥补啥就行了,直到不报错

然后我们封装一个函数去return d方法 ,然后通过execjs调用一下,然后在request一下,直接拿到数据。

 

完结撒花,爬虫路上的第一个独立完成的案例,值得记录一下。 

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
你好!对于爬取动态加载的页面,可以使用 Selenium 库来模拟浏览器的操作。以下是一个简单的示例,展示了如何使用 Selenium 进行动态页面的爬取: 首先,确保已安装 Selenium 库: ``` pip install selenium ``` 然后,根据你使用的浏览器,下载对应的 WebDriver。比如,如果你使用的是 Chrome 浏览器,可以前往 Chrome WebDriver 官网(https://sites.google.com/a/chromium.org/chromedriver/)下载对应版本的 WebDriver。 接下来,编写 Python 代码: ```python from selenium import webdriver # 声明并初始化一个 WebDriver 对象 # 这里以 Chrome 浏览器为例,需要指定 Chrome WebDriver 的路径 driver = webdriver.Chrome('/path/to/chromedriver') # 访问目标网页 driver.get('https://example.com') # 执行一些操作,模拟用户交互 # ... # 获取页面源代码,包含动态加载的内容 html = driver.page_source # 关闭 WebDriver driver.quit() # 处理获取到的页面源代码 # ... ``` 在代码,首先创建了一个 WebDriver 对象,并指定了 WebDriver 的路径。然后使用 `get()` 方法访问目标网页。 接下来,你可以执行一些模拟用户交互的操作,例如点击按钮、填写表单等等,以加载动态内容。 最后,使用 `page_source` 属性获取页面的源代码,其包含了动态加载的内容。你可以根据需要对获取到的源代码进行处理,提取出你感兴趣的信息。 最后别忘了关闭 WebDriver,以释放资源。 希望这个示例能够帮助你入门动态页面的爬取!如果有更多问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值