【发布时间】:2018-08-12 15:13:21
【问题描述】:
我是网络抓取的新手。我想抓取以下网站。
这是一张全球地图,列出了超过 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 完成,请告诉我如何操作。特别是,当您单击图标时会生成数据(供应商名称)。我知道如何使用 selenium 单击文本链接,但这里它是一个图标而不是文本。
【问题讨论】:
-
我在这个推杆上做了几次尝试,但实际上却没有成功。困难似乎在于图标相互遮挡,因此 webdriver 无法单击它们。我能够从其中的几百个中获得结果,但最终每次都会导致崩溃。也许有更好的工具可以用于此
标签: javascript python selenium web-scraping