搜寻选择器中的“#”有什么作用?

时间:2020-07-02 04:34:51

标签: scrapy

我正在学习scrapy doc上的示例。

这里是有问题的完整HTML代码。

<html>
 <head>
  <base href='http://example.com/' />
  <title>Example website</title>
 </head>
 <body>
  <div id='images'>
   <a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a>
   <a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a>
   <a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a>
   <a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a>
   <a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a>
  </div>
 </body>
</html>

我完全理解此命令选择所有<a>元素中的文本节点。

response.css('a::text').getall()

本教程介绍了此命令选择当前选择器上下文

的所有后代文本节点
response.css('#images *::text').getall()

我猜“ * :: text”可能表示所有文本节点。 “当前选择器上下文”是什么意思? “#”是做什么的?

1 个答案:

答案 0 :(得分:2)

FileManager是等同于#的css选择器,并且看起来id也威胁它。

scrapy

当前选择器上下文是您从中开始搜索的元素。你在哪里。在这种情况下,您和<div id='images`> 位于<div>id=images收集所有子元素的文本节点。所有*::text个标记,其中包含图片