我正试图从这个url中只抓取一首歌的吉他和弦https://tabs.ultimate-guitar.com/tab/jason-mraz/im-yours-chords-373896只需打印即可。
但我在打印时没有得到任何输出。我在这里做错了什么?下面是我的代码。
import requests
from bs4 import BeautifulSoup
url = 'https://tabs.ultimate-guitar.com/tab/jason-mraz/im-yours-chords-373896'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/87.0.4280.88 Safari/537.36'
}
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')
results = soup.find("div", {"class": "_4cjjy"})
links = results.findAll("header", {"class": "_2jxI1"})
for item in links:
print("Chords: ", item)
您需要安装selenium
和chromedriver
使用selenium获取html,然后使用bs4 正常执行其余操作
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
url = 'https://tabs.ultimate-guitar.com/tab/jason-mraz/im-yours-chords-373896'
BrowserOptions = Options()
BrowserOptions.add_argument("--headless")
Browser = webdriver.Chrome(executable_path=r'chromedriver.exe',options=BrowserOptions)
Browser.get(url)
html_source_code = Browser.execute_script("return document.body.innerHTML;")
soup = BeautifulSoup(html_source_code, 'html.parser')
links = soup.findAll("span",class_= "_3bHP1 _3ffP6")
for item in links:
print("Chords: ", item.text)
输出:
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: A7
Chords: G
Chords: D
Chords: Dsus4
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: G
Chords: D
Chords: Em
Chords: D
Chords: C
Chords: A7
Chords: G
Chords: Bm
Chords: Em
Chords: D
Chords: C
Chords: A7
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Dsus4
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: D
Chords: Em
Chords: C
Chords: G
Chords: D
Chords: Dsus4
Chords: Em
Chords: C
Chords: A7
示例HTML代码
<span class="_3bHP1 _3ffP6" data-name="G" style="color: rgb(0, 0, 0);">G</span>