在 Airbnb 上抓取 Google 地图坐标
Scrape Google Map coordinates on Airbnb
我正在使用 selenium 在 airbnb 上抓取一些信息。但是,我找不到抓取坐标的方法。
这是我的代码的简单版本:
from selenium import webdriver
from bs4 import BeautifulSoup
driver.get("https://fr.airbnb.ca/rooms/19608536?federated_search_id=686e8698-17a9-4d4d-bbba-100072721de7&source_impression_id=p3_1652976246_32j783N8ZqTYE1DA")
s = str(driver.find_element_by_xpath(
"/html/body/div[5]/div/div/div[1]/div/div/div[1]/div/div/div/div/div[1]/main/div/div[1]
/div[5]/div/div/div/div[2]/div/section/div[3]/div[3]/div[4]/div/div/div[14]
/div/a").get_attribute("href")) #location of the href ("https://maps.google.com/maps?ll=23.1345,-82.3543&z=14&t=m&hl=fr&gl=CA&mapclient=apiv3 ")
coordo = re.search('maps?ll=(.*)&z=', s).group(1) #extract the coordinates
lat = coordo.split(",")[0]
lng = coordo.split(",")[1]
这是 HTML 的样子:
<a style="display: inline;" target="_blank" rel="noopener" title="Ouvrir cette zone dans Google Maps (dans une nouvelle fenêtre)" aria-label="Ouvrir cette zone dans Google Maps (dans une nouvelle fenêtre)" href="https://maps.google.com/maps?ll=23.1345,-82.3543&z=14&t=m&hl=fr&gl=CA&mapclient=apiv3">
如果我尝试打印 href,我会得到这样的结果:
/sitemaps/v2
您不需要将 href
转换为字符串,因为它已经是字符串。此外,我建议您使用新的符号 By.
,因为您正在使用的符号已被弃用。
from selenium.webdriver.common.by import By
s = driver.find_element(By.XPATH, '/html/...').get_attribute('href')
lat = float(s.split(',')[0].split('=')[1])
lng = float(s.split(',')[1].split('&')[0])
我正在使用 selenium 在 airbnb 上抓取一些信息。但是,我找不到抓取坐标的方法。
这是我的代码的简单版本:
from selenium import webdriver
from bs4 import BeautifulSoup
driver.get("https://fr.airbnb.ca/rooms/19608536?federated_search_id=686e8698-17a9-4d4d-bbba-100072721de7&source_impression_id=p3_1652976246_32j783N8ZqTYE1DA")
s = str(driver.find_element_by_xpath(
"/html/body/div[5]/div/div/div[1]/div/div/div[1]/div/div/div/div/div[1]/main/div/div[1]
/div[5]/div/div/div/div[2]/div/section/div[3]/div[3]/div[4]/div/div/div[14]
/div/a").get_attribute("href")) #location of the href ("https://maps.google.com/maps?ll=23.1345,-82.3543&z=14&t=m&hl=fr&gl=CA&mapclient=apiv3 ")
coordo = re.search('maps?ll=(.*)&z=', s).group(1) #extract the coordinates
lat = coordo.split(",")[0]
lng = coordo.split(",")[1]
这是 HTML 的样子:
<a style="display: inline;" target="_blank" rel="noopener" title="Ouvrir cette zone dans Google Maps (dans une nouvelle fenêtre)" aria-label="Ouvrir cette zone dans Google Maps (dans une nouvelle fenêtre)" href="https://maps.google.com/maps?ll=23.1345,-82.3543&z=14&t=m&hl=fr&gl=CA&mapclient=apiv3">
如果我尝试打印 href,我会得到这样的结果:
/sitemaps/v2
您不需要将 href
转换为字符串,因为它已经是字符串。此外,我建议您使用新的符号 By.
,因为您正在使用的符号已被弃用。
from selenium.webdriver.common.by import By
s = driver.find_element(By.XPATH, '/html/...').get_attribute('href')
lat = float(s.split(',')[0].split('=')[1])
lng = float(s.split(',')[1].split('&')[0])