大家好,我是chilly,写爬虫的过程中遇到了ajax加密的问题,request的url参数加了密,百度了一下午,终于找到了解决方案,使用selenium模拟浏览器来操作,我的需求如下
我想爬取酷狗 top500 的mp3的url 链接为 http://www.kugou.com/yy/rank/home/1-8888.html?from=rank 不知道看到这篇文章的你们能否成功的访问,好了,了解完需求,我们开工,我们所以点开一首歌曲,打开开发者工具,XHR异步加载了歌曲,也就是请求了如下url 但是请求参数是加密的
试想能否通过selenium模拟点击top 500 中的每一首歌曲,到播放页面(如上url的页面)
现将代码供大家参考
第一行代码导入驱动
第二行代码与谷歌浏览器相绑定,还可以使用(pantomJs ,FireFox)
第三行代码 告诉浏览器要访问这个url
第四行 告诉浏览器 隐式等待3秒,这个时间是用来加载js显示效果的,如果超过了三秒没有加载完,就报错,如果整个过程没有用到三秒,那么就停止加载,这比sleep( )函数好用太多
第五行 我们选择xpath来对网页进行解析,这里只是个解析方式,大家可以自由选取,定位到该元素后,我们对该元素进行一个click()点击操作,这样就实现了selenium的定位标签,点击标签返回页面的需求。
其中
我是windows os,pip install selenium 在scripts下执行即可安装selenium
至于驱动,大家要下载合适的对应浏览器版本的驱动 推荐 https://blog.csdn.net/cz9025/article/details/70160273点击打开链接
好的,感谢大家。