在这个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>
我尝试过的是driver.find_elements_by_tag_name('div.calibre.div')
并且还在使用
('div.calibre .div') | ('div.calibre + div')
以及其他相关变化。我设法返回了页面中的所有div元素,但我只想返回嵌套在 calibre 类中的所有元素(即book,titlepage,book和book)。有办法吗?
编辑:弗朗西斯科·索里玛(Francisco sollima)给了我正确的答案,我现在将分享一下。在我最初的问题中,我没有注意到在HTML文档的底部关闭了类 要查找顶部 这将返回 答案 0 :(得分:0) 如果“ calibre”类只有一个元素,而这正是您需要的元素,则可以执行以下操作: 当您执行 在这种情况下,<div class='titlepage'>
<div class='book'>
<div class='book'>
</div>
</div>
</div>
1 个答案:
driver.find_element_by_class_name('calibre').find_elements_by_tag_name('div')
driver.find_element_by_class_name('calibre')
(或与此相关的任何其他driver.find...
函数)时,该调用将返回一个对象,该对象具有与driver相同的方法。换句话说,您将获得一部分网页,就像浏览整个网页一样。driver.find_element_by_class_name('calibre')
将返回网页的一部分,其中de元素的类别为“ calibre”,并且其所有元素均为子元素。要访问它的div,您应该使用find_elements_by_tag_name
浏览它。