当前位置:   article > 正文

anglurjs 取 request值_Python爬虫教程(二)使用request+正则re批量下载好听轻音乐网歌曲...

import requests import re import time songid=[] songname=[] for n in range(0

82379dff8020b0e54b516bfe33f8c48b.png
request安装

通过pip安装

pip install requests

request使用示例可参考上一篇文章:

西瓜很甜:Python爬虫教程(一)使用request+Beautiful爬取妹子图​zhuanlan.zhihu.com
re模块
  1. 含义:根据正则表达式进行查找、替换、分隔字符串的函数,正则表达式默认是贪婪匹配。
  2. re模块常用函数函数
  • compile(pattern,flags=0):编译正则表达式pattern,返回一个pattern对象,简单说就是要匹配的内容
  • match(pattern,string,flags=0):pattern从string的头部开始匹配字符串,只返回1次匹配成功的对象;否则,返回None
  • search(pattern,string,flags=0):pattern从string中匹配字符串,只返回1次匹配成功的对象;匹配失败返回None
  • findall(pattern,string, flags=0):pattern从string中匹配字符串,若匹配成功即返回包含匹配结果的列表;否则,返回空列表
  • split(pattern,string,maxsplit=0):根据pattern分隔string函数
  • sub(pattern, repl, string, count):根据正则表达式,替换源字符串的子串。
  • 注意及提示:

①pattern表示一个正则表达式,

②flags表示编译标志位,用于修改正则表达式的匹配方式

③string表示源字符串

④maxsplit表示最大分隔数

⑤repl表示用于替换的字符串

⑥count表示返回前count个匹配结果,count是一个数目

⑦本文着重于讲示例,更多有关正则表达式详情查看相关的官方文档:

正则表达式官方文档​www.regexlab.com

举一个容易理解一点的例子:

  • 需求:假如我需要在一本书里面查找所以“Harvey”这个字符串
  • 理解:这时我们就可以把这本书当做string源字符串, 把“Harvey”当成一个pattern,也就是说写一个正则表达式匹配自己需要的内容或字符串
爬取并批量下载好听轻音乐网

好听轻音乐网链接:钢琴曲 - 好听轻音乐网

  1. import re # 导入正则re库
  2. import requests
  3. import urllib
  4. songId = [] # 存储歌曲
  5. songName = [] # 存储歌名
  6. num = 0
  7. # range(startend, scan)
  8. # start:计数的开始位置,默认是从0开始。
  9. # end: 计数的结束位置
  10. # scan:每次跳跃的间距,默认为1
  11. for n in range(0, 10):
  12. url = "http://www.htqyy.com/genre/musicList/3?pageIndex="+str(n)+"&pageSize=20&order=hot"
  13. # print(url)
  14. html = requests.get(url) # get()发送请求
  15. # 正则匹配歌曲名 compile()返回一个pattern对象
  16. pattern = re.compile('<span class="title".*?sid=".*?">(.*?)</a></span>', re.S)
  17. songName.extend(re.findall(pattern, html.text)) # extend()函数用于在列表末尾一次性追加另一个序列中的多个值
  18. songId.extend(re.findall('sid="(d+)">', html.text)) # 区分 append()和extend()
  19. for m in songId:
  20. print("正在下载", songName[num])
  21. songUrl = 'http://f1.htqyy.com/play7/{}/mp3/4'.format(str(m))
  22. print(songUrl)
  23. num += 1
  24. try:
  25. # urlretrieve() 方法直接将远程数据下载到本地
  26. # urlretrieve(url, filename=None, reporthook=None, data=None)
  27. urllib.request.urlretrieve(songUrl, "D://gequ//" + songName[num] + '.mp3')
  28. print("下载成功")
  29. except:
  30. print("%s歌曲不正常" % songName[num])
获取下载歌曲链接步骤及解释
  • 以爬取钢琴曲为例
  1. http://www.htqyy.com/genre/3将歌曲加入列表

a07f573fdf09e50d649d3878a1e81be6.png

2. 抓取歌曲下载链接

116d6d2ffa12cb934d735f28585119f9.png

喜欢点个赞呗,若本文有错,接受批评和纠正

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/641268
推荐阅读
相关标签
  

闽ICP备14008679号