python讨论qq群:996113038
导语:
上次发过一篇关于“python打造电子琴”的文章,从阅读量来看,我们公众号的粉丝里面还是有很多对音乐感兴趣的朋友的。于是,今天我们也发一个与音乐相关的推送。
学过笛子,洞箫的朋友都知道,弹奏音乐的时候我们要按照简谱演奏。因为关于乐曲的信息全部在简谱里面。音调,音量,节奏。这些都是演奏音乐是最重要的元素。
今天,作为技术人。我们就用python爬虫批量下载简谱图片。
我们要爬取的网站是“简谱网”。
网址是:http://www.jianpuw.com/
代码及相关资源获取:
1:关注“python趣味爱好者”公众号,回复“ 简谱 ”获取源代吗。
2:加入群聊:996113038。在群文件中下载源代码以及相关资料。
开发工具:
python3.6.4
相关第三方库:
requests
parsel
re
效果演示:
基本原理:
爬取简谱,其实说的简单一点就是爬取图片,这个道理很简单,简谱也是图片,以前我们爬取过妹子图。其实道理都差不多
我们先通过requests获取网页源代码,然后分析网页。用parsel和re提取其中的图片的信息。
最后用requests获取图片,用f.write保存到本地文件夹里面。
往期精选:
部分代码:
首先要获取网页源代码,我们用到的是requests模块,为了防止被网站的反爬系统封掉ip地址,我们伪造了一个ip。
prox={'HTTP': '117.88.5.118:3000'}
response=requests.get(base_url,headers=headers,proxies=prox)
其中prox就是我们用到的代理ip。如果大家想批量下载ip。也可以看看历史消息(我们也发过爬取代理ip的程序)。
获取到源代码以后,我们需要分析其中的源代码:
这样,我们就可以提取到特定的简谱所在的网址,值得注意的是。href里面的网址不是完整的网址,需要和原始网页的网址连接到一起。形成一个新网址。然后获取这个新网址的网页源代码。如图所示
然后我们需要获取src里面的网址,和原始网址连接起来就是简谱图片所在的网址。我们访问这个网址就可以获得这个简谱图片。
最后,我们用一个for循环,循环获取所有的简谱所在的网址,然后批量下载。保存到本地。
其中img_name是获取简谱的图片名。
tu=requests.get(img_url, headers=headers,proxies=prox).content
由于图片是二进制格式,我们用到了content。
img_name=img_url.split('/')[-1]
tu=requests.get(img_url, headers=headers,proxies=prox).content
with open('img\\'+img_name, 'wb') as f:
f.write(tu)
感谢大家观看,有钱的老板可以打赏一下小编哦!
扫描下方二维码,关注公众号
参考资料:
图片来源:
https://images.pexels.com/photos/164821/pexels-photo-164821.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500