Xpath for loop 只给出第一个结果。我如何获得所有这些? (Python, 废料)
Xpath for loop gives only first result. How do I get all of them? (Python, Scrapy)
我正在尝试获取所有具有特定 class 名称的结果。 Xpath for 循环只给出第一个结果。
代码如下:
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-with-xpaths
If double slash (//) is used 2 times in XPath, what does it mean?
我正在尝试获取所有具有特定 class 名称的结果。 Xpath for 循环只给出第一个结果。
代码如下:
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-with-xpaths
If double slash (//) is used 2 times in XPath, what does it mean?