python爬取网易云音乐评论及相关信息

  • urllib
  • requests
  • 正则表达式
  • 爬取网易云音乐评论及相关信息

urllib了解

参考链接:
https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432688314740a0aed473a39f47b09c8c7274c9ab6aee000/


requests了解

参考链接:
http://docs.python-requests.org/zh_CN/latest/user/quickstart.html


正则表达式

参考链接:
http://www.runoob.com/python/python-reg-expressions.html


爬取网易云音乐评论及相关信息

1、分析网易云页面

2、获取加密的参数 params 和 encSecKey

3、爬取网易云音乐评论及相关信息

1、分析网易云音乐页面

参考链接https://blog.csdn.net/fengxinlinux/article/details/77950209
爬取网易云音乐的评论,首先在浏览器打开一首需要爬取评论的歌曲页面,比如:https://music.163.com/#/song?id=862102137

然后,在Chrome浏览器(其他类似)按F12键,按F5刷新,根据下图箭头顺序,按顺序操作

如下图所示,即为页面信息。

如下图所示,即为热评内容,获取页面内容,然后解析content即可,解析步骤继续向下看。

2、获取加密的参数 params 和 encSecKey

参考链接:https://www.zhihu.com/question/36081767

3、爬取网易云音乐评论及相关信息(代码有冗余)

(1)使用User Agent和代理IP隐藏身份之为何要设置User Agent

参考链接:https://blog.csdn.net/c406495762/article/details/60137956

  1. agents = [
  2. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
  3. "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  4. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
  5. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
  6. "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
  7. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
  8. "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
  9. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  10. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  11. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  12. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  13. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  14. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  15. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  16. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  17. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
  18. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
  19. "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
  20. ]
  21. import random
  22. # 爬取多首歌评时可以每次随机选取一个User Agent
  23. header = {'User-Agent': ''.join(random.sample(agents, 1))}
  24. # random.sample() 的值是列表, ''.join()转列表为字符串
  25. print(header)

(2)爬取指定一首歌的热评

注意:分析页面发现,热评只在每一首歌的首页,有15条。

参考链接:https://blog.csdn.net/fengxinlinux/article/details/77950209

代码说明:代码中的url和data参数值在上面的图中圈出的部分复制。
  1. # -*-coding:utf-8-*-
  2. """
  3. 爬取网易云音乐指定歌曲的15条热评,
  4. 2018年6月26日
  5. """
  6. import urllib.request
  7. import urllib.error
  8. import urllib.parse
  9. import json
  10. # 抓取网易云音乐指定url的热评
  11. def get_hotComments():
  12. url = 'https://music.163.com/weapi/v1/resource/comments/R_SO_4_862102137?csrf_token=' # 歌评url
  13. header = {'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"}
  14. # post请求表单数据
  15. data = {'params':'LPkOcWb/uz2Nj6xw+RFhGJ1PkFi4+lh4agK+1jRGmjMAiOcJ5RHxQBbZa+aME54AUdi21JkqLu/yeHjjIaLQJ4wzqiuzrzYUKciRCqmCDX9ziKoktv5mgvvlA5+A9a7kUF5pabudBaWjsut+9T5kfHQBv75fIcDRt/Anyb8FnG/Ro6R8IStD0/JknFvH5+3S',
  16. 'encSecKey':'5627cc7941cf4cbd59b13668efe38a622ed0889d33cdcf603d18b025eb34ac434c882ed5ad16ca06e88e40a8b91de455483d0b88b6b460ca146b163e67ebab688b2feb4f22369db85a926744bad9114d3cddd00ca6255d7cdcad6cf7b9300a6fdf49adf983087cd830131fabbac39ec4a526432958309cf92c0b5a6bc177078b'}
  17. postdata = urllib.parse.urlencode(data).encode('utf8') # 进行编码
  18. request = urllib.request.Request(url, headers=header, data=postdata)
  19. response = urllib.request.urlopen(request).read().decode('utf8')
  20. json_dict = json.loads(response) # 获取json
  21. hot_comment = json_dict['hotComments'] # 获取json中的热门评论
  22. num = 1
  23. for item in hot_comment:
  24. print('第%d条评论:' % num + item['content'])
  25. num += 1
  26. if __name__ == '__main__':
  27. get_hotComments()

代码输出,如下图:有完整15条数据,截图范围有限,显示6条。

(3)爬取网易云音乐199首热歌榜每首歌的评论数据

分析问题 ,要获取一首歌曲的页面,

参考链接:
获取歌曲名和歌曲id https://blog.csdn.net/fengxinlinux/article/details/77950209
获取一首歌所有页面的评论数据 https://www.cnblogs.com/weixuqin/p/8905867.html

代码说明1:如果导入from Crypto.Cipher import AES提示错误No module named Crypto.Cipher,请参考文章

https://blog.csdn.net/qiang12qiang12/article/details/80805016

当页面评论不足指定页面的数量时,代码可以选择跳过或者break
  1. # -*- coding:utf-8 -*-
  2. """
  3. 爬取网易云音乐热歌榜的最新评论,指定页数的所有评论,比如前10页
  4. 2018年6月26日
  5. """
  6. import os
  7. import re
  8. import random
  9. import urllib.request
  10. import urllib.error
  11. import urllib.parse
  12. from Crypto.Cipher import AES
  13. import base64
  14. import requests
  15. import json
  16. import time
  17. agents = [
  18. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
  19. "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
  20. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
  21. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
  22. "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
  23. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
  24. "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
  25. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  26. "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  27. "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
  28. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  29. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
  30. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  31. "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  32. "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
  33. "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
  34. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
  35. "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
  36. ]
  37. headers = {
  38. 'Host':'music.163.com',
  39. 'Origin':'https://music.163.com',
  40. 'Referer':'https://music.163.com/song?id=28793052',
  41. 'User-Agent':''.join(random.sample(agents, 1))
  42. }
  43. # 除了第一个参数,其他参数为固定参数,可以直接套用
  44. # offset的取值为:(评论页数-1)*20,total第一页为true,其余页为false
  45. # 第一个参数
  46. # first_param = '{rid:"", offset:"0", total:"true", limit:"20", csrf_token:""}'
  47. # 第二个参数
  48. second_param = "010001"
  49. # 第三个参数
  50. third_param = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7"
  51. # 第四个参数
  52. forth_param = "0CoJUm6Qyw8W8jud"
  53. # 获取参数
  54. def get_params(page): # page为传入页数
  55. iv = "0102030405060708"
  56. first_key = forth_param
  57. second_key = 16 * 'F'
  58. if(page == 1): # 如果为第一页
  59. first_param = '{rid:"", offset:"0", total:"true", limit:"20", csrf_token:""}'
  60. h_encText = AES_encrypt(first_param, first_key, iv)
  61. else:
  62. offset = str((page-1)*20)
  63. first_param = '{rid:"", offset:"%s", total:"%s", limit:"20", csrf_token:""}' % (offset,'false')
  64. h_encText = AES_encrypt(first_param, first_key, iv)
  65. h_encText = AES_encrypt(h_encText, second_key, iv)
  66. return h_encText
  67. # 获取 encSecKey
  68. def get_encSecKey():
  69. encSecKey = "257348aecb5e556c066de214e531faadd1c55d814f9be95fd06d6bff9f4c7a41f831f6394d5a3fd2e3881736d94a02ca919d952872e7d0a50ebfa1769a7a62d512f5f1ca21aec60bc3819a9c3ffca5eca9a0dba6d6f7249b06f5965ecfff3695b54e1c28f3f624750ed39e7de08fc8493242e26dbc4484a01c76f739e135637c"
  70. return encSecKey
  71. # 解密过程
  72. def AES_encrypt(text, key, iv):
  73. pad = 16 - len(text) % 16
  74. text = text + pad * chr(pad)
  75. encryptor = AES.new(key, AES.MODE_CBC, iv)
  76. encrypt_text = encryptor.encrypt(text)
  77. encrypt_text = base64.b64encode(encrypt_text)
  78. encrypt_text = str(encrypt_text, encoding="utf-8") # 注意一定要加上这一句,没有这一句则出现错误
  79. return encrypt_text
  80. # 获得评论json数据
  81. def get_json(url, params, encSecKey):
  82. data = {
  83. "params": params,
  84. "encSecKey": encSecKey
  85. }
  86. response = requests.post(url, headers=headers, data=data)
  87. return response.content.decode('utf-8') # 解码
  88. # 获取热歌榜所有歌曲名称和id
  89. def get_all_hotSong():
  90. url = 'http://music.163.com/discover/toplist?id=3778678' # 网易云云音乐热歌榜url
  91. header = {'User-Agent': ''.join(random.sample(agents, 1))} # random.sample() 的值是列表, ''.join()转列表为字符串
  92. request = urllib.request.Request(url=url, headers=header)
  93. html = urllib.request.urlopen(request).read().decode('utf8') # 打开url
  94. html = str(html) # 转换成str
  95. # print(html)
  96. pat1 = r'<ul class="f-hide"><li><a href="/song\?id=\d*?">.*</a></li></ul>' # 进行第一次筛选的正则表达式
  97. result = re.compile(pat1).findall(html) # 用正则表达式进行筛选
  98. # print(result)
  99. result = result[0] # 获取tuple的第一个元素
  100. pat2 = r'<li><a href="/song\?id=\d*?">(.*?)</a></li>' # 进行歌名筛选的正则表达式
  101. pat3 = r'<li><a href="/song\?id=(\d*?)">.*?</a></li>' # 进行歌ID筛选的正则表达式
  102. hot_song_name = re.compile(pat2).findall(result) # 获取所有热门歌曲名称
  103. hot_song_id = re.compile(pat3).findall(result) # 获取所有热门歌曲对应的Id
  104. # print(hot_song_name)
  105. # print(hot_song_id)
  106. return hot_song_name, hot_song_id
  107. # 抓取某一首歌的前page页评论
  108. def get_all_comments(hot_song_id, page, hot_song_name, hot_song_order): # hot_song_order为了给文件命名添加一个编号
  109. all_comments_list = [] # 存放所有评论
  110. url = 'http://music.163.com/weapi/v1/resource/comments/R_SO_4_' + hot_song_id + '?csrf_token=' # 歌评url
  111. dir = os.getcwd() + '\\Comments\\'
  112. if not os.path.exists(dir): # 判断当前路径是否存在,没有则创建new文件夹
  113. os.makedirs(dir)
  114. num = 0
  115. f = open(dir + str(hot_song_order) + ' ' + hot_song_name + '.txt', 'w', encoding='utf-8')
  116. # ' '是为了防止文件名也是数字混合,加个空格分隔符,写入文件, a 追加
  117. for i in range(page): # 逐页抓取
  118. # print(url, i)
  119. params = get_params(i+1)
  120. encSecKey = get_encSecKey()
  121. json_text = get_json(url, params, encSecKey)
  122. # print(json_text)
  123. json_dict = json.loads(json_text)
  124. for item in json_dict['comments']:
  125. comment = item['content'] # 评论内容
  126. num += 1
  127. f.write(str(num) + '.' + comment + '\n')
  128. comment_info = str(comment)
  129. all_comments_list.append(comment_info)
  130. print('第%d首歌的%d页抓取完毕!' % (hot_song_order, i+1))
  131. # time.sleep(random.choice(range(1, 3))) # 爬取过快的话,设置休眠时间,跑慢点,减轻服务器负担
  132. f.close()
  133. # print(all_comments_list)
  134. # print(len(all_comments_list))
  135. return all_comments_list
  136. if __name__ == '__main__':
  137. start_time = time.time() # 开始时间
  138. hot_song_name, hot_song_id = get_all_hotSong()
  139. num = 0
  140. while num < len(hot_song_name): # 保存所有热歌榜中的热评
  141. print('正在抓取第%d首歌曲热评...' % (num+1))
  142. # 热门歌曲评论很多,每首爬取最新的10页评论
  143. get_all_comments(hot_song_id[num], 10, hot_song_name[num], num+1)
  144. print('第%d首歌曲热评抓取成功' % (num+1))
  145. num += 1
  146. end_time = time.time() # 结束时间
  147. print('程序耗时%f秒.' % (end_time - start_time))
代码说明2:当页面评论不足指定页面的数量时,代码可以选择break或者继续爬空,break代码如下(替换上面的函数即可):
  1. def get_all_comments(url, page):
  2. all_comments_list = [] # 存放所有评论
  3. num = 0
  4. f = open('TTTTTTTTTTTest.txt', 'a', encoding='utf-8') # 写入文件
  5. for i in range(page): # 逐页抓取
  6. print(url, i)
  7. params = get_params(i+1)
  8. encSecKey = get_encSecKey()
  9. json_text = get_json(url, params, encSecKey)
  10. # print(json_text)
  11. json_dict = json.loads(json_text)
  12. onePageComments = [] # 判断评论最后一页,如果评论数为0,则结束爬取
  13. for item in json_dict['comments']:
  14. comment = item['content'] # 评论内容
  15. onePageComments.append(comment)
  16. num += 1
  17. f.write(str(num) + '.' + comment + '\n')
  18. comment_info = str(comment)
  19. all_comments_list.append(comment_info)
  20. if len(onePageComments) == 0:
  21. break
  22. print("本页评论数量", len(onePageComments))
  23. print('第%d页抓取完毕!' % (i+1))
  24. # time.sleep(random.choice(range(1, 3))) # 爬取过快的话,设置休眠时间,跑慢点,减轻服务器负担
  25. f.close()
  26. return all_comments_list
比如,设置爬取页数为50页,而爬取的评论只有19页时,爬完19页即终止。

(4)爬取网易云音乐每首歌的其他数据

包括,评论总数,评论发布者昵称、头像、ID等等,可以根据自己需要解析页面获取。
  1. def get_all_comments(url, page):
  2. all_comments_list = [] # 存放所有评论
  3. num = 0
  4. f = open('Test.txt', 'w', encoding='utf-8') # 写入文件
  5. for i in range(page): # 逐页抓取
  6. print(url, i)
  7. params = get_params(i+1)
  8. encSecKey = get_encSecKey()
  9. json_text = get_json(url, params, encSecKey)
  10. # print(json_text)
  11. json_dict = json.loads(json_text)
  12. print("热评总数:", json_dict["total"]) # 热评总数
  13. for item in json_dict['hotComments']:
  14. comment = item['content'] # 评论内容
  15. print("用户信息:", item['user'])
  16. # 评论发布者昵称、头像、ID
  17. nickname = item['user']['nickname']
  18. avatarUrl = item['user']['avatarUrl']
  19. userId = item['user']['userId']
  20. urllib.request.urlretrieve(avatarUrl, "headPortrait\\" + str(userId) + '.jpg') # 存放头像
  21. # 根据爬取的头像链接下载头像到本地
  22. num += 1
  23. f.write(str(num) + '.' + comment + '\n')
  24. comment_info = str(comment)
  25. all_comments_list.append(comment_info)
  26. print('第%d页抓取完毕!' % (i+1))
  27. # time.sleep(random.choice(range(1, 3))) # 爬取过快的话,设置休眠时间,跑慢点,减轻服务器负担
  28. f.close()
  29. return all_comments_list
比如,获取第一页用户信息。

python爬取网易云音乐评论及相关信息的更多相关文章

  1. 爬取网易云音乐评论!python 爬虫入门实战(六)selenium 入门!

    说到爬虫,第一时间可能就会想到网易云音乐的评论.网易云音乐评论里藏了许多宝藏,那么让我们一起学习如何用 python 挖宝藏吧! 既然是宝藏,肯定是用要用钥匙加密的.打开 Chrome 分析 Head ...

  2. 用Python爬取网易云音乐热评

    用Python爬取网易云音乐热评 本文旨在记录Python爬虫实例:网易云热评下载 由于是从零开始,本文内容借鉴于各种网络资源,如有侵权请告知作者. 要看懂本文,需要具备一点点网络相关知识.不过没有关 ...

  3. Python爬取网易云音乐歌手歌曲和歌单

    仅供学习参考 Python爬取网易云音乐网易云音乐歌手歌曲和歌单,并下载到本地 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做 ...

  4. python爬虫+词云图,爬取网易云音乐评论

    又到了清明时节,用python爬取了网易云音乐<清明雨上>的评论,统计词频和绘制词云图,记录过程中遇到一些问题 爬取网易云音乐的评论 一开始是按照常规思路,分析网页ajax的传参情况.看到 ...

  5. python爬取网易云音乐歌曲评论信息

    网易云音乐是广大网友喜闻乐见的音乐平台,区别于别的音乐平台的最大特点,除了“它比我还懂我的音乐喜好”.“小清新的界面设计”就是它独有的评论区了——————各种故事汇,各种金句频出.我们可以透过歌曲的评 ...

  6. python爬取网易云音乐歌单音乐

    在网易云音乐中第一页歌单的url:http://music.163.com/#/discover/playlist/ 依次第二页:http://music.163.com/#/discover/pla ...

  7. 如何用Python网络爬虫爬取网易云音乐歌曲

    今天小编带大家一起来利用Python爬取网易云音乐,分分钟将网站上的音乐down到本地. 跟着小编运行过代码的筒子们将网易云歌词抓取下来已经不再话下了,在抓取歌词的时候在函数中传入了歌手ID和歌曲名两 ...

  8. Python爬取网易云热歌榜所有音乐及其热评

    获取特定歌曲热评: 首先,我们打开网易云网页版,击排行榜,然后点击左侧云音乐热歌榜,如图: 关于如何抓取指定的歌曲的热评,参考这篇文章,很详细,对小白很友好: 手把手教你用Python爬取网易云40万 ...

  9. python爬虫:了解JS加密爬取网易云音乐

    python爬虫:了解JS加密爬取网易云音乐 前言 大家好,我是"持之以恒_liu",之所以起这个名字,就是希望我自己无论做什么事,只要一开始选择了,那么就要坚持到底,不管结果如何 ...

  10. python网络爬虫&&爬取网易云音乐

    #爬取网易云音乐 url="https://music.163.com/discover/toplist" #歌单连接地址 url2 = 'http://music.163.com ...

随机推荐

  1. kvm命令管理虚拟机

    virsh 既有命令行模式,也有交互模式,在命令行直接输入 virsh 就进入交互模式, virsh 后面跟命令参数,则是命令行模式: KVM 工具集合 libvirt:操作和管理KVM虚机的虚拟化 ...

  2. Git pull 强制拉取并覆盖本地代码

    git fetch --all git reset --hard origin/master git pull

  3. 18. Fluentd输出插件:out_stdout用法详解

    stdout即标准输出,out_stdout将收到的日志事件打印到标准输出. 如果Fluentd以daemon方式在后台运行,out_stdout会将事件输出到Fluentd的运行日志中. 这个插件在 ...

  4. 影响 erp 系统实施成功的因素是什么?

    影响ERP系统实施成功的因素很多,主要有以下几点:企业一把手是否大力支持.实施顾问是否专业负责.ERP系统是否强大灵活且适用三个方面!没有企业一把手的大力支持,ERP的应用基本上不可能获得成功.ERP ...

  5. Golang可能会踩的58个坑之初级篇

    前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷.如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到. 如果花时间学习官方 ...

  6. 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MSTE: 基于多向语义关系的有效KGE用于多药副作用预测

    MSTE: 基于多向语义关系的有效KGE用于多药副作用预测 论文标题: Effective knowledge graph embeddings based on multidirectional s ...

  7. AI人脸识别+换脸

    视频换脸可参考 https://github.com/iperov/DeepFaceLab import dlib.dlib as dlib import numpy import sys impor ...

  8. LcdTools如何实现PX01设置不同的画面不同的背光亮度

    背光驱动分两种原理:恒压模式和恒流模式.恒压背光顾名思义提供恒定电压即可,这种屏正常来讲自带背光驱动电路,只需提供背光工作电压.背光使能和背光调光占空比控制.恒流背光指屏的背光只有纯灯串,需外部提供相 ...

  9. 【一】ERNIE:飞桨开源开发套件,入门学习,看看行业顶尖持续学习语义理解框架,如何取得世界多个实战的SOTA效果?

    ​ 参考文章: 深度剖析知识增强语义表示模型--ERNIE_财神Childe的博客-CSDN博客_ernie模型 ERNIE_ERNIE开源开发套件_飞桨 https://github.com/Pad ...

  10. Mysql InnoDB Buffer Pool

    参考书籍<mysql是怎样运行的> 系列文章目录和关于我 一丶为什么需要Buffer Pool 对于InnoDB存储引擎的表来说,无论是用于存储用户数据的索引,还是各种系统数据,都是以页的 ...