我正在进行网络爬网以检查一种可用性。 我想查看特定时间的标题。但是,如果标题为“ NO”,则没有href,否则为href。因此,它的xpath取决于标题。标题名称每次都会更改。所以我无法通过xpath进行检查。
如果我要检查09:00〜11:00的可用性,怎么办?
我试图通过XPATH查找。但是,由于XPATH会按照我的指示进行更改,因此无法检查所需的具体时间。
谢谢。
下面是HTML代码。
<span class="rs">07:00~09:00</span><img src="../images/reservation_btn04.gif" title="NO"><br>
<span class="rs">09:00~11:00</span><img src="../images/reservation_btn04.gif" title="NO"><br>
<span class="rs">11:00~13:00</span><img src="../images/reservation_btn04.gif" title="NO"><br>
<span class="rs">13:00~15:00</span><a href="./reg_add.asp?regdate=2018-09-16&ftime=4&ftype=1&fac=C"><img src="../images/reservation_btn03.gif" title="YES"></a><br>
<span class="rs">15:00~17:00</span><a href="./reg_add.asp?regdate=2018-09-16&ftime=5&ftype=1&fac=C"><img src="../images/reservation_btn03.gif" title="YES"></a><br>
<span class="rs">17:00~19:00</span><a href="./reg_add.asp?regdate=2018-09-16&ftime=6&ftype=1&fac=C"><img src="../images/reservation_btn03.gif" title="YES"></a><br>
<span class="rs">19:00~21:00</span><img src="../images/reservation_btn04.gif" title="NO"><br>
答案 0 :(得分:0)
如果文本09:00~11:00
是固定的,则可以像这样找到img
元素-
element = driver.find_element_by_xpath("//span[@class='rs' and contains(text(),'09:00~11:00')]/following-sibling::img")
要检查元素的title
属性是否为“ YES”-
if element.get_attribute("title") == 'YES':
// do whatever you want
要获取所需元素的href
属性-
source = driver.find_element_by_xpath("//span[@class='rs' and contains(text(),'09:00~11:00')]/following-sibling::img[@title='YES']/preceding-sibling::a").get_attribute("href")
答案 1 :(得分:0)
根据您共享的 HTML ,以检查任何时间段的可用性,例如 09:00〜11:00 ,您可以使用以下解决方案:
您可以创建一个function()
,它将一个参数作为时间跨度并提取 availability ,如下所示:
def check_availability(myTimeSpan):
print(driver.find_element_by_xpath("//span[@class='rs'][.='" + myTimeSpan + "']//following::img[1]").get_attribute("title"))
现在,您可以在任意时间范围内调用函数 check_availability()
,如下所示:
check_availability("09:00~11:00")