面试须知,Python爬取网易云音乐1万条评论,腾讯、网易必问的20道题Python面试题-程序员宅基地

技术标签: 2024年程序员学习  面试  python  职场和发展  

首先,我们用电脑打开网易云音乐这条视频的链接。找到最新评论,目标就是把这些评论全部取出来。接着发现每点击“下一页”,网站的url并没有任何变化,说明整个评论区的内容都是通过Ajax异步请求技术得到的。关于这个概念大家可以百度,简单来说就是能够实现在后台与服务器交换数据,在不重新加载页面的情况下更新网页。打开浏览器F12,进入开发者工具,选择Network,我们选择XHR(XmlHttpRequest)就可以选出Ajax的请求包:

在这里插入图片描述

然后再一个个点进去查看response,就能找到包含评论的数据包️

在这里插入图片描述

点进去就能看到header信息

在这里插入图片描述

可以发现是一个post请求并且接收两个参数params以及encSecKey

在这里插入图片描述

我们先来试试看

import requests

import json

url = ‘https://music.163.com/weapi/v1/resource/comments/R_VI_62_3F79C7B87510106B8118EE3F811C1BC5?csrf_token=’

headers = {

‘User-Agent’:‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36’,

‘Referer’:‘https://music.163.com/video?id=3F79C7B87510106B8118EE3F811C1BC5&userid=265996751’,

‘Origin’:‘http://music.163.com’,

‘Host’:‘music.163.com’

}

user_data = {

‘params’: ‘fphfDEFeIs3I+ybqkBQhWxvB8GFOB0RMrmOS1VfB9ljX0CWccYd5WPdfRk6iaPuhllQcpKweUTwKc7GyZZENbB99O3C/vdhEeChuxLK8Rl40hb/ipmhXIxbJ1KRMemNFF+jTQqdFUnw3HNdrUqSzjmfh/HP630vmp4HVL6i+oSDygse0C1JUgS5d5Six93R7r8b3tKUCnPw/JJbH3AXTlA==’,

‘encSecKey’: ‘a658168c2225f0dfe46e9b260abb348691c42946ec46e6f4a5c434e86d6d546da0fcb7de0dba750422c40064b026169a453f5e42c59f63c38c7749c0e81023dd27978f1e5d97b6c97fa70df347737b51a69fc15b49b2e3e209c53eefcf7d795b6344404811e84761c700422ef57a427e84bc77adece15146ca62033b3f2aacfd’

}

response = requests.post(url,headers=headers,data=user_data)

可以发现能够取到这一页的评论信息

在这里插入图片描述

但是这只能拿到当前这一页的评论。那么怎样获取全部的评论信息呢,之前我们说过,点击下一页的时候只刷新评论,而不会重新加载页面。通过测试我们发现点击下一页时候只有 params和encSecKey会改变,那么接下来的问题就是就是搞明白这两个参数是怎样变化的。还好已经有知乎大神[1]给出了加密过程的解析与还原代码,所以我们直接拿过来用就可以。整个过程比较复杂,每个参数经过两次加密涉及到四个不同参数。由于篇幅原因完整的代码可以在早起python公众号内回复音乐获取。那么最后是将所有评论全部爬取下来。

在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中…(img-hArCg790-1712613123771)]

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_58846287/article/details/137533003

智能推荐

Subject_suhject-程序员宅基地

文章浏览阅读2.7w次。N.作为名词,是常见的“主题,题目,话题,学科,课程”, “绘画,摄影,被描绘对象,题材”,臣民(君主制)等adj. 可能受。。。影响,受……支配,取决于……Subject to ……E.G.:Flights are subject to delay because of the fog.取决于;视…而定:The article is ready to publish, subject to your approval.V.使臣服; 使顺从; (尤指)压服;The Roman Empire _suhject

远程连接服务器软件——十大常见的服务器管理软件-程序员宅基地

文章浏览阅读1.2w次。**1、远程桌面连接**远程桌面连接(以前称为“终端服务客户端”)主要是用于对远程托管的服务器进行远程管理,使用非常方便,如同操作本地电脑一样方便,而远程桌面连接工具,我个人喜好IIS7。IIS7远程桌面管理工具(3389、vps、服务器批量管理、批量远程工具) 是一款绿色小巧,功能实用的远程桌面管理工具,其界面简洁,操作便捷,能够同时远程操作多台服务器,并且多台服务器间可以自由切换,适用于网...

spring 容器中的对象赋值给静态变量_如何将一个对象变量值赋值到静态变量中-程序员宅基地

文章浏览阅读392次。声明静态redisTemplateprivate static RedisTemplate<String, Object> redisTemplate ;生成set方法,通过set方法注入(必须用@Resource注入,redisTemplate不支持@Autowired);@Resource(name="redisTemplate")public void setRedi..._如何将一个对象变量值赋值到静态变量中

L283 Easy 移动0_c 语言 实现如下函数: int* movezero(int* arr int nsize) 该函数-程序员宅基地

文章浏览阅读112次。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。代码注意边界条件,即..._c 语言 实现如下函数: int* movezero(int* arr int nsize) 该函数可以把一个整型数组中所有的0移至数组

uni-app在App平台如何实现升级更新?_uni-app在app平台如何实现升级更新?-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏39次。使用 uni-app 开发,可将代码编译到iOS、Android、微信小程序等多个平台,升级时也需考虑多平台同步升级。uni-app发布为小程序的升级模式较简单,只需将开发完的代码提交小程序后台,待审核通过后用户将自动升级。App端的升级,又分为整包更新和资源热更新两种。整包更新,即常规的整个App安装包重新下载安装。资源热更新,即App并重新安装,里面的js等前端代码进行更新。资源热更新另见文档:http://ask.dcloud.net.cn/article/35667本文重点讲解整包更_uni-app在app平台如何实现升级更新?

JAVA MD5加密-程序员宅基地

文章浏览阅读3.4w次,点赞23次,收藏77次。一、什么是MD5加密MD5,全称为“Message Digest Algorithm 5”,中文名“消息摘要算法第五版”,它是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。严格来说,它是一种摘要算法,是确保信息完整性的。不过,在某种意义上来说,也可以算作一种加密算法。MD5 算法具有很多特点:压缩性:任意长度的数据,算出的MD5值长度都是固_java md5

随便推点

numpy学习_揘umpy v {'descr': '<i4', 'fortran_order': false, -程序员宅基地

文章浏览阅读881次。文章目录NumPynumpy应用numpy 安装linux下安装安装验证numpy Ndarray 对象实例numpy数据类型数据类型对象(dtype)实例numpy数组属性ndarray.ndimndarray.shape实例:ndarray.itemsizendarray.flagsnumpy创建数组numpy.emptynumpy.zerosnumpy.ones从已有数组创建数组numpy...._揘umpy v {'descr': '

2017 Python开源项目Top 30榜单,程序员学Python,不要错过!_52 amazing python projects for developers-程序员宅基地

文章浏览阅读858次。转载自:https://medium.mybridge.co/30-amazing-python-projects-for-the-past-year-v-2018-9c310b04cdb3继推出2017年机器学习开源项目Top 30榜单后,Mybridge AI又推出了一个Python开源项目Top 30榜单,包括开源Python库、工具等。该榜单基于项目质量、用户参与度以及其他几个方面_52 amazing python projects for developers

专技岗计算机类考什么,2014年天津事业单位考试专技岗计算机网络知识:常见网络管理协议(上)...-程序员宅基地

文章浏览阅读121次。2014年天津事业单位考试专技岗计算机网络知识:常见网络管理协议(上)2014年天津事业单位考试专技岗计算机网络知识:常见网络管理协议(上)【导语】在天津事业单位考试中,计算机专业知识的复习向来是考生复习备考阶段的一大重点,其中中公事业单位考试网为计算机网络知识的复习为考生提供知识点梳理,帮助考生备考!随着网络的不断发展,规模增大,复杂性增加,简单的网络管理技术已不能适应网络迅速发展的要求。以往的..._专技十三级计算机考什么

uni-app 清除手机app缓存_uniapp app安卓需要清掉缓存才能继续安装-程序员宅基地

文章浏览阅读251次。【代码】uni-app 清除手机app缓存。_uniapp app安卓需要清掉缓存才能继续安装

JUC并发编程详解_juctb-程序员宅基地

文章浏览阅读254次。completion stage:代表异步计算过程中的某个阶段一个阶段完成以后可能会触发另一个阶段在Java8中,CompletableFuture提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,并且提供了函数式编程的能力,可以通过回调的方式处理计算结果,也提供了转换和组completableFuture 的方法。它可能代表一个明确完成的Future,也有可能代表一个完成阶段〈CompletionStage ),它支持在计算完成以后触发一些函数或执行某些动作。_juctb

JdbcTemplate介绍-程序员宅基地

文章浏览阅读1.3k次。JdbcTemplate介绍JdbcTemplate概念使用JdbcTemplate的准备工作操作数据库(增)操作数据库 (修改和删除)操作数据库 (查询)查询返回某个值查询返回对象查询返回集合操作数据库 (批量添加)操作数据库 (批量修改和删除)  操作数据库增//创建sql语句String sql = "insert into t_book values(?,?,?)";Object[] args = {book.getUserid(), book.getUsername(), book.