目录
概述
爬取hao123上的所有音乐导航链接
准备
所需模块
- re模块
- requests模块
涉及知识点
- python基础
- requests模块基础
- re模块基础
运行效果
控制台打印:
完成爬虫
1. 分析网页
打开hao123音乐导航,按F12分析网页
因此可以使用URL:http://www.hao123.com/music/wangzhi请求该网页的HTML源代码进行数据获取。
2. 爬虫代码
import re
import requests
# 音乐导航网址:http://www.hao123.com/music/wangzhi
# 请求头
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"
}
# 请求的URL
url = "http://www.hao123.com/music/wangzhi"
# 发送请求,获取响应
response = requests.get(url, headers=header).text
# 正则表达式:获取音乐导航链接URL
pat_music_url = r'<a href="(.*?)" title="" target="_blank" class="text-con">'
# 正则表达式:获取音乐导航名字
pat_music_name = r'<a href=".*?" title="" target="_blank" class="text-con">[\s\s]*?(.*?)[\s\s]*?</a>'
# 音乐导航URL列表
music_url_list = re.findall(pat_music_url, response.strip())
# 音乐导航名字列表
music_name_list = re.findall(pat_music_name, response)
# 循环遍历
if len(music_url_list) == len(music_name_list):
for i in range(0, len(music_url_list)):
print(music_name_list[i], ":", music_url_list[i])
运行代码结果如上所示,主要的难点就是使用正则表达式提取数据。