如何从这个div部分解析第二个a标记。当我尝试时,它总是从div孩子中选择第一个。我如何选择第二个,这样我就可以得到电子邮件。
<div class="col-md-4">
Address:
<div style="padding-left: 1em">
Box 460
<br />
<a href="/canada/Clinton-Village.html"
>100 Mile House, British Columbia V0K 2E0</a
>
</div>
<br /><b>Enrollment:</b> 310<br />
<b>Grade span:</b> K-7<br />
<br /><b>School Type:</b> Standard School<br />
<b>School Category:</b> Public School<br />
<br /><b>Principal:</b> Mrs Donna Rodger<br />
<b>Phone (verify before using):</b> (250) 395-2258<br />
<b>Fax (verify before using):</b> (250) 395-3621<br />
<b>E-mail:</b>
<a href="mailto:donna.rodger@sd27.bc.ca">donna.rodger@sd27.bc.ca</a>
<br />
</div>我试过使用Xpath
emailElement = email_driver.find_element(By.XPATH, '//*[@id="main_body"]/div[3]/div[1]/div[1]/div[1]/div[1]')
result_email = emailElement.find_element(By.TAG_NAME, "a")
print(result_email.text)输出
100 Mile House, British Columbia V0K 2E0
它总是给我第一个标签。我想选择第二个标签
预期产出
donna.rodger@sd27.bc.ca
我想解析这一节
<a href="mailto:donna.rodger@sd27.bc.ca">donna.rodger@sd27.bc.ca</a>
发布于 2022-09-20 12:43:13
而不是
emailElement = email_driver.find_element(By.XPATH, '//*[@id="main_body"]/div[3]/div[1]/div[1]/div[1]/div[1]')
result_email = emailElement.find_element(By.TAG_NAME, "a")
print(result_email.text)试试这个:
emailElement = email_driver.find_element(By.XPATH, '//*[@id="main_body"]/div[3]/div[1]/div[1]/div[1]/div[1]')
result_email = emailElement.find_element(By.XPATH, ".//a[contains(@href,'mailto')]")
print(result_email.text)您还应该改进'//*[@id="main_body"]/div[3]/div[1]/div[1]/div[1]/div[1]' XPath表达式,但是我无法帮助您,因为您没有分享有关这方面的详细信息。
您还可能需要使用WebDriverWait预期的条件来等待元素的存在或可见性。
发布于 2022-09-20 13:26:46
有许多方法可以识别元素
选项1:查找包含电子邮件文本的标记,然后查找下一个同胞锚标记
print(email_driver.find_element(By.XPATH, "//b[text()='E-mail:']/following-sibling::a[1]").text)选项2:查找包含电子邮件文本的标记,然后查找下一个锚标记
print(email_driver.find_element(By.XPATH, "//b[text()='E-mail:']/following::a[1]").text)选项3:找到锚标记,开始使用() mailto
print(email_driver.find_element(By.XPATH, "//a[starts-with(@href,'mailto')]").text)选项4:找到锚标记,href开始使用(在css选择器中) mailto
print(email_driver.find_element(By.CSS_SELECTOR, "a[href^='mailto']").text)发布于 2022-09-20 12:45:45
尝试使用cssSelector/xpath而不是tagName。
cssSelector : By.cssSelector("a[href*='mailto:']")
or
xpath : By.xpath("//div[@class='col-md-4']/a[contains(@href,'mailto')]")https://stackoverflow.com/questions/73786867
复制相似问题