gpt4 book ai didi

javascript - 如何使用 Python 在 ajax 网页上抓取鼠标悬停框内容

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:17 26 4
gpt4 key购买 nike

我一直在尝试从这个ajax中提取 map 上每个单元格的尺寸website ,仅当鼠标指向单元格时才会弹出每个单元格的详细信息。

我使用Python selenium webdriver和phantomjs来加载和提取page_source,但没有找到数据。我使用 firebug 查找可能从中加载内容的任何 .json 文件,但没有找到。

请查看该网站,并建议我如何从指向 map 上每个单元格时移动的悬停框中抓取内容。

P.S:我在 stackoverflow 和几个网站上做了很多研究,但都无济于事。

最佳答案

没有AJAX实际上,但是svg包含 <g> 的对象页面上每个项目(展位)的元素。要获取所需信息,您必须将鼠标悬停在此 <g> 上。使用以下代码,您可以获得大部分项目描述(大约占整个 g 元素数量的 2/3)...我不确定页面的上下文是关于什么的,所以我无法确定页面上项目外观的规律性:

from selenium import webdriver as web
from selenium.webdriver.common.action_chains import ActionChains
import time
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = web.Chrome()
driver.maximize_window()
driver.get('http://www.aptaexpo.com/apta2017/public/eventmap.aspx?shmode=E&thumbnail=1')
time.sleep(5)
driver.find_elements_by_tag_name('polygon')[0].click() # [1] to choose another hall
time.sleep(5)

list_of = driver.find_elements_by_xpath('//div[@class="leaflet-overlay-pane"]/*[name()="svg"]/*[name()="g"]')
for item in list_of:
action = ActionChains(driver)
action.move_to_element(item)
try:
description = wait(driver, 3).until(EC.visibility_of_element_located((By.XPATH, '//div[*[contains(text(), "Booth:")]]'))).text
print(description)
action.perform()
except:
action.perform()

关于javascript - 如何使用 Python 在 ajax 网页上抓取鼠标悬停框内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41366053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com