url
=
'https://music.163.com/discover/toplist?id=3778678'
url_base
=
'http://music.163.com/song/media/outer/url?id='
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'
}
response
=
requests
.
get
(
url
=
url
,
headers
=
headers
)
html
=
etree
.
HTML
(
response
.
text
)
raw_id_list
=
html
.
xpath
(
'//a[contains(@href, "song?")]/@href'
)
raw_name_list
=
html
.
xpath
(
'//a[contains(@href, "song?")]/text()'
)
id_list
=
[
]
name_list
=
[
]
for
id
in
raw_id_list
:
music_id
=
id
.
split
(
'='
)
[
1
]
if
'$'
not
in
music_id
:
id_list
.
append
(
music_id
)
for
music_name
in
raw_name_list
:
if
'{'
not
in
music_name
:
name_list
.
append
(
music_name
)
for
i
in
range
(
len
(
id_list
)
)
:
music_url
=
url_base
+
id_list
[
i
]
music_name
=
name_list
[
i
]
music
=
requests
.
get
(
url
=
music_url
,
headers
=
headers
)
with
open
(
'./%s.mp3'
%
music_name
,
'wb'
)
as
file
:
file
.
write
(
music
.
content
)
print
(
'<%s>下载成功...'
%
music_name
)
*urllib.request:**这是
Python
自带的库,不需要单独安装,它的作用是为我们打开url获取html的内容。虽然这样可以看得更清楚,但不适用于我们的
爬虫
程序,爬一页就打开一页效率太低,所以我们用一个叫PhantomJS的工具代替真实的浏览器。这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网页。
有了第一个程序的基础,我们现在来
爬取
酷狗音乐top500的歌曲信息。连接http://www.kugou.com/yy/rank/home/1-8888.html
我们第一个程序只
爬取
了一个页面的数据,而现在我们需要
爬取
多个页面的数据,即跨页面
爬虫
。这就需要我们观察网页URL来构造一个列表利用for循环,分次抓取了。接下来看代码:
#导入requests库
import re...
为一线医护人员加油!为武汉加油!为中国加油!为世界加油!
此
爬虫
是本人参考了了一位前辈的文章
环境:Ubuntu18.04、
Python
3.6.9、Google
Chrome
python
爬取
网易云
热歌
榜
歌曲信息(iframe框架内数据
爬取
,src为空)
一、
网易云
热歌
榜
https://music.163.com/#/discover/toplist?id=3778678页面是采用嵌入内...
r=requests.get(url,timeout=5)#发送请求,timeout限制请求时间
r.raise_for_status()#若有错误,抛出异常
r.encodin...
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
PS:如有需要
Python
学习资料的小伙伴可以加点击下方链接自
行
获取
python
免费学习资料以及群交流解答点击即可加入
python
3.6.5
pycharm
import requests
相关模块 pip 安装即可
网易云
的歌曲还是很好听的~
超NICE的网站~
http://tool.liumingye.cn/music/?page=homePage
首先找到要下载的歌曲排
行
榜
的链接,这里用的是:https://music.163.com/discover/toplist?id=3778678然后更改你要保存的目录,目录要先建立好文件夹,例如我的是保存在D盘-360下载-
网易云
热歌
榜
文件夹内,就可以完成下载。如果文件夹没有提前建好,会报错[Errno 2] No such file or directory。代码实现:from urllib i...
一.分析思路
网易云
音乐
热歌
榜
的页面采用嵌入内联框架的方式,若
爬虫
直接从官网入口进入访问
热歌
榜
http://music.163.com/#/discover/toplist?id=3778678,是无法获取到iframe框架内的数据的,因此应当用另外的方法进
行
访问。当然最简单的方法可以用selenium+
chrome
的方式进
行
获取数据(使用switch_to.frame方法,网上有很多教程)。第二种...
2021软科中国大学排名(
Python
抓取)
由于软科官网使用动态渲染技术,将数据封装在js文件中,导致无法直接抓取所有的排名记录。用普通的请求方式只能抓取到前30条记录。虽然也可以通过自动化测试工具selenium模拟浏览器
行
为把数据提取出来,但毕竟繁琐。本文通过拿到网页js文件,然后通过正则表达式提取出排名信息的方式,将所有大学排名抓取出来。具体步骤如下:
(1)右键点击检查(
Chrome
),来到控制面板,点击network,找到payload.js,双击找到请求头headers,便可以找到请求
前一段时间刚刚入门
python
爬虫
,有大概半个月时间没有写
python
了,都快遗忘了。于是准备写个简单的
爬虫
练练手,我觉得
网易云
音乐最优特色的就是其精准的歌曲推荐和独具特色的用户评论,于是写了这个抓取
网易云
音乐
热歌
榜
里的热评的
爬虫
。我也是刚刚入门
爬虫
,有什么意见和问题欢迎提出,大家一起共同进步。
废话就不多说了~
我们的目标是
爬取
网易云
中的
热歌
排
行
榜
中所有歌曲的热门评论。
这样既可以减少
创建
爬虫
查看
歌单
链接 https://music.163.com/#/discover/playlist
用 requests 下载此链接的网页发现不是原网页,应该是被跳转到了登录页面。分析之后得到真实网页应该是:
https://music.163.com/discover/playlist (去掉 #)
同时还需要设置一下 headers,如下:
DEFAULT_REQUEST_HEADER...
之前在课本上和csdn看到了这个
爬取
大学排名的案例,但照着案例打出的程序一直报错,后来一步一步根据网上资料分析程序后,不断改错后,终于实现了这个程序的编写。
二、运
行
结果展示
三、程序实现需要的几个函数库
requests和 bs4其中requests库用来
爬取
网页内容,使用beautifulsoup4库分析网页中的数据,提取学校排名并且打印出来。首先这两个库是要提前下载的:需要我们使用cmd进入到我们
python
下载所在的文件中的Scripts文件中,输入下列指令下载即可
四、程序分析
简单分析一下这个