對於一個有趣的網頁抓取項目,我想從 ttps://www.nhl.com/stats/teams 收集 NHL 資料。
有一個可點擊的 Excel 匯出標籤,我可以使用 selenium
和 bs4
找到它。
不幸的是,事情到這裡就結束了:
由於沒有 href
屬性,我似乎無法存取資料。
我透過使用 pynput
模擬滑鼠點擊得到了我想要的,但我想知道:
我可以採取不同的做法嗎?如果感覺很笨拙。
-> 帶有匯出圖示的標籤可以在這裡找到:
a class="styles__ExportIcon-sc-16o6kz0-0 dIDMgQ"
-> 這是我的程式碼
`import pynput from pynput.mouse import Button, Controller import time from bs4 import BeautifulSoup from selenium import webdriver driver = webdriver.Chrome(executable_path = 'somepath\chromedriver.exe') URL = 'https://www.nhl.com/stats/teams' driver.get(URL) html = driver.page_source # DOM with JavaScript execution complete soup = BeautifulSoup(html) body = soup.find('body') print(body.prettify()) mouse = Controller() time.sleep(5) # Sleep for 5 seconds until page is loaded mouse.position = (1204, 669) # thats where the icon is on my screen mouse.click(Button.left, 1) # executes download`
沒有
href
屬性,透過JS觸發下載。使用selenium
時找到您的元素並使用.click()
下載檔案:在這裡使用
或透過以
css 選擇器
來取得直接子級的<a>
styles__ExportIcon
開頭的類別直接選擇它:範例
您可能需要處理 onetrust 橫幅,因此請先按一下它,然後下載該表。