如何获取tex的CSS选择器

2024-09-28 01:30:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从一个网站上用Selenium(Python)抓取一些日期。我想存储rollover-s1 lastbookingrollover-s2 sr--x-times-last-time类中的文本。你知道吗

以下是网站的代码:

<div data-component="onview-animate" data-anim-type="rollover" data-anim-trigger="mouseenter" class="sr--x-times-booked js_sr_persuation_msg">
    <div class="rollover-s1 lastbooking" rel="300">
3-mal gebucht für Ihre Daten in den letzten 12 Stunden auf unserer Seite
    </div>
    <div class="rollover-s2 sr--x-times-last-time" rel="300">
Zuletzt gebucht  für Ihre Daten vor 2 Stunden
    </div>
</div>

下面是我的Python代码:

first = hotel.find_elements_by_css_selector("div.rollover-s1.lastbooking")
second = hotel.find_elements_by_css_selector("div.rollover-s2.sr--x-times-last-time")

奇怪的是,我得到的文本3-mal gebucht für Ihre Daten在den letzten 12 Stunden auf unseer Seite为第一类,但我得到了一个空字符串“”为第二类。你知道吗

你知道第二节课我做错了什么吗?你知道吗


Tags: divdatatimeclasslasttimess2sr
2条回答

所需的元素是React元素,因此要首先定位该元素,必须导出WebDriverWait,才能单击元素,并且可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    print(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.sr x-times-booked.js_sr_persuation_msg[data-component='onview-animate'] div.rollover-s2.sr x-times-last-time"))).get_attribute("innerHTML"))
    
  • 使用XPATH

    print(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='sr x-times-booked js_sr_persuation_msg' and @data-component='onview-animate']//div[@class='rollover-s2 sr x-times-last-time']"))).get_attribute("innerHTML"))
    
  • 注意:必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

您的css选择器已经正确。实际上,你可以用短一点的:

  1. “.rollover-s1”
  2. “.rollover-s2”

现在要弄清楚为什么第二次滚动显示为空白,请观察正在运行的脚本,看看第二次滚动是否与第一次滚动不同。第一个正在显示,第二个隐藏吗?都是隐藏的,但第二个从未在页面上触发/显示?你知道吗

相关问题 更多 >

    热门问题