循环的Xpath只给出第一个结果.我怎样才能得到所有这些?(Python,Scrapy)



我正在尝试获取所有具有特定类名的结果。循环的Xpath只给出第一个结果。

这是代码:

for links in response.xpath("//*[@id='main']/div/div[contains(@class, 'ZINbbc xpd O9g5cc uUPGi')]"):
link = links.xpath("//div[contains(@class, 'kCrYT')]/a/@href").get()
header = links.xpath("//div[contains(@class, 'kCrYT')]/a/h3/div/text()").get()

我也尝试过将[position()>=3 and position(<=14]添加到第一个div中。

编辑:这是HTML:

<div id="main">
<div>...</div>(Don't need this one)
<styles>...</styles>
<div>...</div>
<div class="ZINbbc xpd O9g5cc uUPGi">
<div class="kCrYT">
<a href="link">
<h3 class="zBAuLc">
<div class="BNeawe vvjwJb AP7Wnd">Title</div>
</h3>
.......

我敢肯定,单斜杠表示绝对路径。

https://docs.scrapy.org/en/latest/topics/selectors.html#working-具有xpaths

如果XPath中使用了两次双斜杠(//(,这意味着什么?

相关内容

最新更新