使用Python对酷狗排行榜爬取
1. 设置自定义请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
这里设置了一个自定义请求头,特别是User-Agent。它用于模拟浏览器访问,因为一些网站可能会基于用户代理(User-Agent)来区分请求是由真实用户的浏览器发出还是由爬虫发出。
2. 设置要爬取的页数
songs = []
for page in range(1, 24):
songs.extend(match_songs(page))
因为top500每页22个所以是500/22+1=23页。这里我们做了一个循环用来爬取这么多页,然后将爬取的内容使用extend函数扩展保存起来。
而match_songs就是我们定义的爬取函数
3. 发送网络请求(下面是match_songs函数)
url = f'https://www.kugou.com/yy/rank/home/{
page}-8888.html'
response = requests.get(url, headers=headers)
html_content = response.text
定义了连接,因为是不不同页数就把页数的部分改为输入的值page
使用requests.get发送一个GET请求到上述URL,并传入之前设置的headers。
response.text包含了网页的HTML内容。
4. 解析HTML内容
soup = BeautifulSoup(html_content, 'html.parser')
这里使用BeautifulSoup解析获取到的HTML内容。
'html.parser’是用于解析HTML的解析器。
5. 提取歌曲信息
page_songs = []
for li in soup.find_all(