可以看到地址为https://www.kugou.com/yy/rank/home/1-8888.html?from=rank;其中各个部分代码的含义如下:
字段含义https传输协议www.kugou.com域名yy/rank/home/abs域名下的子网页.html代表网页是静态的?代表一种条件,后面接参数1-88888888可能是端口,1代表当前页面数,TOP500一共有23页,从1-8888到23-8888下载fiddler,抓取访问酷狗官网时的包,点击打开,查看user-agent信息
headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53\ 7.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36' }成功将网页爬取到pycahrm中
要截取的目标元素 按F12进入开发模式,找到目标元素对应的代码 右键,复制为selector 提取数据部分代码:
html = BeautifulSoup(html) names=html.select('#rankWrap > div.pc_temp_songlist > ul > li > a') #获取歌手和歌曲名称 for name in names: singer.append(name['title'].split('-')[0]) song.append(name['title'].split('-')[1]) #获取歌曲时长 times = html.select('#rankWrap > div.pc_temp_songlist > ul > li> span.pc_temp_tips_r > span') for t in times: l = str(t) l = re.sub('\s+', ' ', l) l = re.search("(\d{1,2}:\d{1,2})", l) time.append(l.group(1))结果
