Det går sakta men säkert framåt.
Nu stöter jag på ett annat problem, jag har följande kod hittills:
Kod:
# -*- coding: iso-8859-1 -*-
# -*- coding: latin-1 -*-
import time
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
first = "Sven"
last = "Svensson"
street = "Storgatan"
streetnumber = "1"
browser = webdriver.Chrome()
browser.get('https://www.eniro.se/' + first + '+' + last + '+' + street + '+' + streetnumber + '/personer')
time.sleep(5)
btn = driver.find_element_by_class("hero-lead-icon__icon-container--inverted phoneNumber");
btn.click();
Har klippt bort lite annan kod, minns inte vilka av modulerna ovan jag faktiskt använder i detta kodstycke, men någon av dem är det.
Eftersom varje person har ett ID som jag inte har tillgång till utan att faktiskt gå in på länken tänkte jag att det blir enklast att använda Selenium ändå och göra sökningen med en direkt-url (antagligen lägga till postnummer också för bättre noggrannhet), öppna den första personen som dyker upp i listan och därefter hämta nummerlistan som dyker upp längst ner i popupen.
Det gör inget om det är lite slött då jag gissningsvis kommer ha en del sleeptimers ändå, tänkte inte hamra in 20.000 nummer på en halvtimme.
Men jag får felmeddelande på näst sista raden, att "NameError: name 'driver' is not defined. Did you mean: 'webdriver'.
Är inte det en seleniummetod som torde fungera rakt av?
Citat:
Ursprungligen postat av
zizty
Enklast att använda deras api direkt.
Kod:
response = requests.get(https://www.eniro.se/api/ps?query=Sven+Svensson+stockholm&sortOrder=default)
Är antagligen inte tillåtet men använd delay + vpn så borde det inte vara några problem.
Citat:
Ursprungligen postat av
Enterprise
Ja, det där var ju ännu bättre, då får man svaret i ren JSON som är enkelt att
omvandla till ett objekt. 👍
Tänkte att det skulle vara omständigt att lära sig JSON också, men det var ju mycket simplare än vad jag antog.
Utmärkt lösning!
Då får jag alltså ett felmeddelande på det istället:
Kod:
response = requests.get('https://www.eniro.se/api/ps?query=sven+svensson+stockholm&sortOrder=default')
time.sleep(3)
data = response.json()
print (data["phoneNumber"])
Får en KeyError på att phoneNumbers inte finns, fastän den syns tydligt i listan som dyker upp om jag går in på länken manuellt.
Vad kan vara felet?