我需要抓取一个包含卡片的网站。我想要的是每张卡内的信息。我已经能够获得像这样的卡片列表:
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
答案 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)