国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Web Scraping: Fehlendes href-Attribut – Müssen Mausklicks für Web Scraping simuliert werden?
P粉550823577
P粉550823577 2024-04-04 10:32:06
0
1
3901

Für ein unterhaltsames Web-Scraping-Projekt m?chte ich NHL-Daten von ttps://www.nhl.com/stats/teams sammeln.

Es gibt eine anklickbare Excel-Export-Registerkarte, die ich mit seleniumbs4 finden kann.

Leider endet es hier: Da es kein href-Attribut gibt, kann ich anscheinend nicht auf die Daten zugreifen.

Ich habe bekommen, was ich will, indem ich einen Mausklick mit pynput simuliert habe, aber ich m?chte wissen:

Was h?tte ich anders machen k?nnen? Wenn es sich unangenehm anfühlt.

-> Etiketten mit Exportsymbolen finden Sie hier:

a class="styles__ExportIcon-sc-16o6kz0-0 dIDMgQ"

-> Das ist mein Code

`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`

P粉550823577
P粉550823577

Antworte allen(1)
P粉807471604

沒有href屬性,通過JS觸發(fā)下載。使用 selenium 時(shí)找到您的元素并使用 .click() 下載文件:

driver.find_element(By.CSS_SELECTOR,'h2>a').click()

在這里使用 css 選擇器 來獲取直接子級 的<a>

或者通過以styles__E??xportIcon開頭的類直接選擇它:

driver.find_element(By.CSS_SELECTOR,'a[class^="styles__ExportIcon"]').click()

示例

您可能需要處理 onetrust 橫幅,因此請先單擊它,然后下載該表。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

url = 'https://www.nhl.com/stats/teams'
driver.get(url)
driver.find_element(By.CSS_SELECTOR,'#onetrust-reject-all-handler').click()
driver.find_element(By.CSS_SELECTOR,'h2>a').click()
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage