Ich versuche, Breite und Länge von TripAdvisor Restaurants zu ziehen. Die Informationen sind nicht prominent auf der Webseite angezeigt, aber ich habe es in der HTML finden Sie hier:Scraping Javascript Text mit Python und Selen
Latitude and Longitude w/in Javascript
Ich versuche, diesen Code zu verwenden, um alle Informationen zu ziehen:
#import libraries
import requests
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
for i in range(0, 30, 30):
#need this here for when you want more than 30
while i <= range:
i = str(i)
#url format offsets the restaurants in increments of 30 after the oa
url1 = 'https://www.tripadvisor.com/Restaurants-g294217-oa' + i + '-Hong_Kong.html#EATERY_LIST_CONTENTS'
r1 = requests.get(url1)
data1 = r1.text
soup1 = BeautifulSoup(data1, "html.parser")
for link in soup1.findAll('a', {'property_title'}):
#print 'https://www.tripadvisor.com/Restaurant_Review-g294217-' + link.get('href')
restaurant_url = 'https://www.tripadvisor.com/Restaurant_Review-g294217-' + link.get('href')
browser = webdriver.Chrome('C:\Python27\Chromedriver\chromedriver.exe')
# use xpath to get to the information in the JS
print browser.find_element_by_xpath("""/html/body/script[22]""")
Wenn ich den Code ausführe, sagt er mir, dass er das Element nicht finden kann. Vielleicht bin ich im Moment ein bisschen hirntot, aber wenn ein frischer Blick darauf schauen könnte und mich wissen lassen würde, ob ich das falsch mache oder ob es einen anderen Weg gibt, bin ich ganz Ohr.
Nicht sicher von Ihrem Problem, aber 'während i <= Bereich:' ist nicht gültig, da 'Bereich' eine Funktion ist. – Brian
Vielen Dank, ich werde mich darum kümmern. Wenn Sie den Link des Bildes betrachten, das ich gepostet habe. Ich versuche, diese Information in diesem Foto zu ziehen. Aber wenn ich es ausführe, sagt es mir, dass der Code das Element im XPath nicht finden kann. – dtrinh