1

我正在用 Scrapy 制作一个爬虫,并想知道为什么我的 xpath 在我的 CSS 选择器运行时不起作用?我想从此 html 中获取提交的数量:

<li class="commits">
    <a data-pjax="" href="/samthomson/flot/commits/master">
        <span class="octicon octicon-history"></span>
        <span class="num text-emphasized">
          521
        </span>
        commits
    </a>
  </li

Xpath:

response.xpath('//li[@class="commits"]//a//span[@class="text-emphasized"]//text()').extract()

CSS:

response.css('li.commits a span.text-emphasized').css('::text').extract()

CSS 返回数字(未转义),但 XPath 不返回任何内容。我是否正确使用 // 嵌套元素?

4

1 回答 1

1

您没有匹配标签class属性中的所有值,因此使用该函数检查是否仅存在:spancontainstext-emphasized

response.xpath('//li[@class="commits"]//a//span[contains(@class, "text-emphasized")]//text()')[0].strip()

否则还包括num

response.xpath('//li[@class="commits"]//a//span[@class="num text-emphasized"]//text()')[0].strip()

此外,我使用[0]检索 XPath 返回的第一个元素并strip()删除所有空格,只得到数字。

于 2015-09-19T12:25:40.197 回答