簡體   English   中英

使用 Beautiful soup 從網站上抓取特定數據

[英]Scraping particular data from a website using Beautiful soup

我試圖從這 url https://tabs.ultimate-guitar.com/tab/jason-mraz/im-yours-chords-373896中只刮出一首歌的吉他和弦並簡單地打印出來。

但是在打印出來時我沒有得到任何 output 。 我在這里做錯了什么? 下面是我的代碼。

        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)

您需要安裝seleniumchromedriver

使用 selenium 獲得 html,然后像平常一樣使用 bs4 執行 rest

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)

Output:

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM