Issue
I am quite new to webscraping, but I was attempting to webscrape all the markers seen on https://www2.evphvchargemap.com/map/tokyo in the city of tokyo. I tried to scrape the elements using xpath but it returns an empty array. I was curious if there was also a more efficient way to retrieve such elements. Thank you
import selenium
from selenium import webdriver
from bs4 import BeautifulSoup
from selenium.webdriver.chrome.service import Service
import time
url = 'https://www2.evphvchargemap.com/map/tokyo'
driver = webdriver.Chrome()
driver.get(url)
# Wait for the page to load (adjust the sleep duration if needed)
time.sleep(30)
# Get the page source
p = element = driver.find_elements("xpath",'//*[@id="map"]/div[1]/section/div/article/div[3]')
# Close the WebDriver
driver.quit()
print(p)
#//*[@id="map_canvas"]/div/div/div[2]/div[2]/div/div[4]/div/div/div/div[1]/div/div/div/dl/dt
I attempted to find using xpath but it returns an empty array. Also, I attempted to load the entire page's html using inspect element but it only displays partially the divisions and could not fully display the spot-name, spot-address - that is the information I am trying to obtain for all such markets
Solution
The data you see on the map is loaded from external URL (luckily in Json format):
import requests
import pandas as pd
data_url = 'https://www2.evphvchargemap.com/api/Data/chargermap.json'
data = requests.get(data_url).json()
df = pd.DataFrame(data['dataroot']['ChargerMap'])
print(df)
Prints:
SpotId SpotName SpotLat SpotLon Type ChargerType Addr Tel Open Use Remarks SpotUrl
0 718 トヨタモビリティ東名古屋 新栄店 35.170132 136.923316 1 200V ケーブル有り 1台 愛知県名古屋市中区葵1丁目27番29号 052-935-6122 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
1 858 トヨタモビリティ神奈川 武山店 35.222898 139.643923 1 200V ケーブル有り 1台 神奈川県横須賀市武3-7-7 046-857-1441 9:30~18:00{0}定休日:月曜日、火曜日 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください http://www.c-yokohama.com/
2 867 トヨタモビリティ東名古屋 鍋屋上野店 35.182980 136.953320 1 200V ケーブル有り 1台 愛知県名古屋市千種区谷口町5番35号 ,052-721-1261 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
3 899 トヨタモビリティ東名古屋 長久手店 35.171673 137.044353 1 200V ケーブル有り 1台 愛知県長久手市武蔵塚910番地 ,0561 - 63 - 88 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
4 901 トヨタモビリティ東名古屋 山之手店 35.053668 137.149697 1 200V ケーブル有り 1台 愛知県豊田市御幸本町一丁目176番地 0565 - 29 - 211 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
5 967 トヨタモビリティ東名古屋 三好ヶ丘店 35.118450 137.111017 1 200V ケーブル有り 1台 愛知県みよし市三好丘6丁目4番地の1 ,0561 - 36 - 25 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
6 1041 トヨタモビリティ東名古屋 荒畑店 35.149990 136.925558 1 200V ケーブル有り 1台 愛知県名古屋市昭和区鶴舞4丁目17番23号 052-732-3541 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
7 1042 トヨタモビリティ東名古屋 三好中央店 35.090544 137.069709 1 200V ケーブル有り 1台 愛知県みよし市三好町上230番地 0561 - 33 - 250 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
8 1060 トヨタモビリティ東名古屋 島田橋店 35.123910 136.970961 1 200V ケーブル有り 1台 愛知県名古屋市天白区元八事3丁目71番地 052 - 835 - 202 8:00~19:00{0}定休日:なし 利用可能カード:EV・PHV充電サポート{0}最大充電時間:1時間 詳細は店舗にてご確認ください。 NaN
...
Answered By - Andrej Kesely
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.