我正在制作一个网络爬行来检查一种可用性。 我想检查特定时间的标题。但是,如果标题为"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>
根据您共享的HTML来检查任何时间跨度的可用性,例如09:00~11:00,您可以使用以下解决方案:
-
您可以创建一个
function()
,该将参数作为时间跨度并提取可用性,如下所示: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")
如果文本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")