无法使用硒Python获取元素列表中的元素

时间:2019-07-11 09:39:49

标签: python selenium

我需要抓取一个包含卡片的网站。我想要的是每张卡内的信息。我已经能够获得像这样的卡片列表:

cards = driver.find_elements_by_xpath("//div[@class='cardclass...']")
for card in cards:
    print(card.text)
    print('*'*100)

这将正确打印所有卡的文本。但是当我这样做时会出现内部循环:

for card in cards:
    name = card.find_element_by_xpath("//h2[@class='nameclass...']")
    print(name.text)
    .  .  .  # Other elements to scrap inside a particular card

这将仅打印第一张卡的名称。但是循环一直持续到卡的长度。 h2标签位于cardclass div标签内。网站的结构是这样的:

<div class="cardclass">
    <h2 class="nameclass">
        <a class="..." href="..." ... >
            NAME
        </a>
    </h2>
    Other elements that also need to be scraped
    .  .  .
    .  .  .
</div>
<div.. /div>    #Second Card and so on

1 个答案:

答案 0 :(得分:1)

x路径//h2[@class='nameclass...']将从顶部开始搜索。从当前节点搜索。您可以使用.//h2[@class='nameclass...']之类的。(点)。

for card in cards:
    name = card.find_element_by_xpath(".//h2[@class='nameclass...']")
    print(name.text)