我正在尝试使用 Python/Selenium 来迭代并从网站中提取日历约会信息。
在网页上,单击此按钮会出现一个弹出窗口,其中包含日历约会详细信息:
<a class="fc-timegrid-event fc-v-event fc-event fc-event-draggable fc-event-start fc-event-end fc-event-future fc-event-future fc-event-show" tabindex="0" data-calendar-event-1856361581="" data-test-appointment-event="">
我正在尝试使用 Python 来显示该弹出窗口,或者捕获信息
data-calendar-event-1856361581=""
。
即使没有出现弹出窗口,我也可以从
<a>
属性之一获取我需要的内容(至少我认为这是一个属性?):
data-calendar-event-1856361581=""
该值的 1856361581
部分是约会 ID,并且是我创建 URL 以使浮出控件显示所需的全部内容,但我无法找到任何方法来捕获 data-calendar-event-1856361581=""
信息。日历上的每个约会在 data-calendar-event
中都有自己唯一的约会 ID,我正在循环访问所有约会。
我可以通过 XPATH 找到上述元素,但是
.click
不会使弹出窗口出现:
appt_path = 'appt_path = '//table/tbody/tr/td/div/div[2]/div[1]/a''
appt = driver.find_element(By.XPATH, appt_path)
appt.click
我尝试了以下方法来尝试查找
data-calendar-event-1856361581="
的任何内容,但到目前为止我无法在任何地方找到它:
print(appt.get_property('attributes')[0])
print(appt.get_attribute('class'))
任何有关使弹出窗口出现或捕获
data-calendar-event-1856361581=""
的帮助将不胜感激。谢谢!
给定 HTML:
<a class="fc-timegrid-event fc-v-event fc-event fc-event-draggable fc-event-start fc-event-end fc-event-future fc-event-future fc-event-show" tabindex="0" data-calendar-event-1856361581="" data-test-appointment-event="">
要提取属性名称
data-calendar-event-1856361581
,您可以使用get_attribute()
方法,如下所示:
print(driver.find_element(By.XPATH, '//table/tbody/tr/td/div/div[2]/div[1]/a').get_attribute("outerHTML").replace("=", " ").split(" ")[13])
代码:
outerHTML = '''<a class="fc-timegrid-event fc-v-event fc-event fc-event-draggable fc-event-start fc-event-end fc-event-future fc-event-future fc-event-show" tabindex="0" data-calendar-event-1856361581="" data-test-appointment-event="">'''
print(outerHTML.replace("=", " ").split(" ")[13])
输出:
data-calendar-event-1856361581