网络抓取 - 从地图图标中提取信息

问题描述 投票:-3回答:1

我是网络抓取新手。我想刮掉以下网站。

http://maps.3dhubs.com/

这是一张全球地图,列有> 7000家供应商。我想得到所有供应商的名字。放大特定区域时,您将看到红色图标。单击红色图标会弹出一个弹出窗口,其中包含供应商的名称。

我使用以下代码:

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.Firefox()
url = 'http://maps.3dhubs.com/'
driver.get(url)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
suppliers = soup.find_all("div", class_="leaflet-popup-pane")
print (suppliers)
driver.quit() 

代码给出一个空列表作为输出。我需要的信息是div标签和leaflet-popup-pane类,但这些信息仅在单击图标后显示。

如果可以使用硒来完成,请告诉我如何操作。特别是,单击图标时会生成数据(供应商名称)。我知道如何使用selenium点击文本链接,但这里是一个图标而不是文本。

image

javascript python selenium web-scraping
1个回答
0
投票

我认为这个json文件(http://s3-eu-west-1.amazonaws.com/3dhubs/s3fs-public/hubsformap.json)就是你想要的。我在网站的源代码中找到它。

var xhr = new XMLHttpRequest();
    L.mapbox.accessToken = 'pk.eyJ1IjoiM2RodWJzbWFwcyIsImEiOiJBSzBFalRzIn0.j8icvSftfyZ4yxJmEgbrRw';
xhr.open('GET', encodeURI('//s3-eu-west-1.amazonaws.com/3dhubs/s3fs-public/hubsformap.json'));
© www.soinside.com 2019 - 2024. All rights reserved.