Ich habe ein Skript in Python in Kombination mit Selen geschrieben, um einige Firmennamen von einer Webseite zu analysieren. Der von mir definierte Selektor ist einwandfrei. Sobald jedoch die Webseite geöffnet wird, erscheint ein nerviges ad
, das die Daten versteckt und dafür kann ich nicht dorthin gelangen. Wie kann ich es raus und parse die Daten, die ich gerne würde. Ich habe versucht, mit mehreren iframes
auf dieser Webseite verfügbar, aber keiner von ihnen funktioniert. Die vorhandene, die ich in meinem Skript verwendet, gibt eine Fehlermeldung Message: no such element: Unable to locate element
.Wie man "ad" ausstößt, wenn der Browser geöffnet wird?
Dies ist, was ich bisher versucht:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.inc.com/inc5000/list/2017")
driver.switch_to_frame(driver.find_element_by_id("jw_player_iconic"))
for item in driver.find_elements_by_css_selector("#data-container .row"):
company = item.find_elements_by_css_selector(".company a")[0].text
print(company)
driver.quit()
Die Pop-up-Anzeige ist so etwas wie unten (die helle eins):
Vielen Dank Sir Andersson, für Sie eine effektive Antwort. Ich stoße niemals auf eine einzige Instanz Ihrer Lösung, um unwirksam zu sein. Es macht immer die Magie. Es ist lange her, seit ich von dir gehört habe. Wo hast du den Ort des iframe gefunden? Ich meinte, du musst es gesehen haben, weil du den Ausdruck '// span [. = 'SKIP']' benutzt hast. Ich verdarb einige Stunden, um es zu lösen, aber scheiterte. Danke noch einmal. – SIM
Sie finden die Anzeige "iframe" mit XPath '// iframe [startet mit (@id," google_ads_iframe ")]'. Ich habe es einfach mit der Dev-Konsole gefunden - nichts besonderes. Beachten Sie auch, dass der "SKIP" -Knopf außerhalb des "iframe" liegt, so dass Sie nicht zum Rahmen wechseln müssen – Andersson