python - 如何使用css选择器获取跨度数据?

标签 python css scrapy

这个html文件

<html>
 <head></head>
 <body>
  <div class="float-r"> 
   <span id="artical_comment_cnt"><i></i>0</span> 
   <span><i class="view"></i><script src="/cms/plus/count.php?view=yes&amp;aid=20192&amp;mid=17" language="javascript"></script>778</span> 
  </div>
 </body>
</html>

我想得到 "0"和 "778",我的代码是

comments = response.css(".float-r span#artical_comment_cnt::text").extract()[0]  
views = response.css("div.float-r span span::text").extract_first().extract()[0]

结果总是NULL,如何解决?

更新

对于 id artical_comment_cnt 仅适用于全局 我的答案是

In [2]: response.css("span#artical_comment_cnt::text").extract_first()
Out[2]: '0'

最佳答案

你的选择器有一些错误。

要获得评论,您应该这样写:

>>> response.css(".float-r span#artical_comment_cnt::text").extract_first()
'0'

#artical_comment_cnt代替.artical_comment_cnt#是指定一个id,.是一个类.

要获取 View ,需要指定,
您想要 div (.float-r) 元素中的 second 跨度, nth-child(2) 将执行此操作。

>>> response.css("div.float-r span:nth-child(2)::text").extract_first()
'778'

span:nth-child(2) 而不是 span span

关于python - 如何使用css选择器获取跨度数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45634401/

相关文章:

python - 如何用python在hadoop中保存文件

python - 多处理中的可变变量

python - PyCharm 自动打开

html - CSS 背景图像

python - 如何在 PyQt 中的 QGraphicsView 旁边添加菜单栏(QMainWindow)?

javascript - 在一页上制作多个 slider /轮播

css - Z-Index 和相对/绝对定位

python - 数据没有被正确抓取

python - 垃圾。从 div 中提取 html 而不包装父标签

python - 在 Scrapy python 中将参数传递给 process.crawl