n_b*_*n_b 5 html css python selenium-webdriver
我无法弄清楚返回此 HTML 示例中的特定元素的语法。
<div class="calibre" id="calibre_link-0">
<div class="book" title="Chapter 11. Web Scraping">
<div class="titlepage">
<div class="book">
<div class="book">
<h1 class="title1"><a id="calibre_link-2915" class="firstname"></a>Web Scraping</h1>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我尝试过的是driver.find_elements_by_tag_name('div.calibre.div')并且还使用了
('div.calibre .div') | ('div.calibre + div')它们的其他变体。我已经设法返回页面中的所有 div 元素,但我只想返回嵌套在calibre类中的所有元素(即 book、titlepage、book 和 book)。有没有办法做到这一点?
如果只有一个元素具有“calibre”类,并且它正是您需要的元素,您可以执行以下操作:
driver.find_element_by_class_name('calibre').find_elements_by_tag_name('div')
Run Code Online (Sandbox Code Playgroud)
当您执行driver.find_element_by_class_name('calibre')(或任何其他driver.find...与此相关的函数)时,该调用将返回一个与驱动程序具有相同方法的对象。换句话说,您可以像浏览整个网页一样浏览网页的一部分。
在这种情况下,driver.find_element_by_class_name('calibre')将返回网页的一部分,其中包含类为“calibre”的 de 元素及其所有子元素。要访问它的 div,您应该使用 进行导航find_elements_by_tag_name。