如何不使用Selenium爬取Google平台的完整歌词内容?
方案结论
完全可以不用模拟点击按钮,仅通过axios等HTTP请求工具爬取初始HTML就能拿到完整歌词。
- 谷歌搜索的歌词卡片的完整内容默认已经全部嵌入首次返回的静态HTML中,「Show more」按钮仅用来切换前端CSS显示规则,不会触发额外的异步数据请求加载剩余歌词。
- 实际爬取时注意两个要点:
- 请求头的
User-Agent要设置为常规桌面浏览器的UA,避免谷歌返回无歌词内容的精简版页面或者触发反爬拦截 - 歌词内容统一存储在携带
data-lyricid属性的div容器下,所有段落的歌词文本都在该容器的子节点内,直接提取所有子节点的文本拼接就能得到完整歌词,不需要处理点击相关的逻辑
- 请求头的
补充说明:谷歌有对应的反爬策略,短时间内高频请求会触发验证码校验,建议控制合理的请求间隔,必要时可搭配代理使用。
内容的提问来源于stack exchange,提问作者user15573857
相关产品推荐
相关产品推荐

