飞花落尽 发表于 2021-8-24 13:05:01

为什么爬虫的author的关键字不一样(63讲)?

本帖最后由 飞花落尽 于 2021-8-24 13:21 编辑

一个是small.author
另一个是span small

wp231957 发表于 2021-8-24 13:05:02

飞花落尽 发表于 2021-8-24 14:09
在Anaconda里输入 author = i.css('small.author::text').extract()
在spider中的Python文件中输入 ...

在我看来并没有什么区别都是一样的东东
small.author::text   这个表示 取small标签 并且类名=author 的正文
span small::text'   这个表示取span标签的子标签small标签的正文
具体就要看应用环境   比如上面的 适合只有一个small标签就不需要添加他的父节点标签span
                                        下面的适和span下面只有一个small 标签就不需要添加类名
总之都是一样的看个人喜好


wp231957 发表于 2021-8-24 13:09:40

不知所云

飞花落尽 发表于 2021-8-24 13:17:12

wp231957 发表于 2021-8-24 13:09
不知所云

就是一个在Anaconda里输入 author = i.css('small.author::text').extract()
另一个在spider中的Python文件中输入的是 author = i.css('span small::text').extract()

飞花落尽 发表于 2021-8-24 13:20:33

这是py里的
def parse(self,response):
      for i in response.css('div.quote'):
            yield(dict(
                text = i.css('span.text::text').extract(),
                author = i.css('span small::text').extract(),
                tags = i.css('div.tags a.tag::text').extract()
                ))

飞花落尽 发表于 2021-8-24 13:21:21

wp231957 发表于 2021-8-24 13:09
不知所云

这是anaconda里的
>>> for i in response.css('div.quote'):
...   text = i.css('span.text::text').extract()
...   author = i.css('small.author::text').extract()
...   tags = i.css('div.tags a.tag::text').extract()
...   print(dict(text=text,author = author,tags=tags))

wp231957 发表于 2021-8-24 13:21:29

飞花落尽 发表于 2021-8-24 13:17
就是一个在Anaconda里输入 author = i.css('small.author::text').extract()
另一个在spider中的Pyth ...

爬虫不都是针对具体网站以及待采集的信息
才好说如何敲代码,你这单独拿出这两句
脱离了上下文,谁知道是咋回事呢

飞花落尽 发表于 2021-8-24 13:29:16

wp231957 发表于 2021-8-24 13:21
爬虫不都是针对具体网站以及待采集的信息
才好说如何敲代码,你这单独拿出这两句
脱离了上下文,谁知道 ...

我主要是想问下css后面的字符串含义是什么?

飞花落尽 发表于 2021-8-24 13:31:32

wp231957 发表于 2021-8-24 13:21
爬虫不都是针对具体网站以及待采集的信息
才好说如何敲代码,你这单独拿出这两句
脱离了上下文,谁知道 ...

抽象含义,是审查元素里随便找的吗?还是别的?

wp231957 发表于 2021-8-24 13:33:42

飞花落尽 发表于 2021-8-24 13:29
我主要是想问下css后面的字符串含义是什么?

css选择器,其实看个人喜好,我个人比较喜欢xpath有时候xpath取不到,才去考虑其他
至于啥是css选择器,你多解析一些网站,自然明了

飞花落尽 发表于 2021-8-24 13:36:56

wp231957 发表于 2021-8-24 13:33
css选择器,其实看个人喜好,我个人比较喜欢xpath有时候xpath取不到,才去考虑其他
至于啥是css选择器, ...

不是css选择器,是css后面的那个字符串'small.author::text'是从网页的审查元素里随便找的还是特定的去找?

飞花落尽 发表于 2021-8-24 13:39:34

wp231957 发表于 2021-8-24 13:33
css选择器,其实看个人喜好,我个人比较喜欢xpath有时候xpath取不到,才去考虑其他
至于啥是css选择器, ...

就是css选择器参数的含义

wp231957 发表于 2021-8-24 13:40:51

飞花落尽 发表于 2021-8-24 13:36
不是css选择器,是css后面的那个字符串'small.author::text'是从网页的审查元素里随便找的还是特定的去找 ...

审查元素里面右键有个css的复制,你粘一下就知道了

飞花落尽 发表于 2021-8-24 13:57:34

wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了

<span>by <small class="author" itemprop="author">Albert Einstein</small>
      <a href="/author/Albert-Einstein">(about)</a>
      </span>
这个是网页中author的数据

飞花落尽 发表于 2021-8-24 13:59:08

wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了

在Anaconda里输入 author = i.css('small.author::text').extract()
在spider中的Python文件中输入的是 author = i.css('span small::text').extract()
这两个提取的关键字是怎么看的?我还是没懂

飞花落尽 发表于 2021-8-24 14:00:14

wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了

在Anaconda里输入 author = i.css('small.author::text').extract()
在spider中的Python文件中输入的是 author = i.css('span small::text').extract()
这两个关键字是怎么看的?我还是没懂

飞花落尽 发表于 2021-8-24 14:03:15

飞花落尽 发表于 2021-8-24 13:57
by Albert Einstein
      (about)
      


在Anaconda里输入 author = i.css('small.author::text').extract()
在spider中的Python文件中输入的是 author = i.css('span small::text').extract()
这两个关键字是怎么找的?我还是没懂

飞花落尽 发表于 2021-8-24 14:09:42

wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了

在Anaconda里输入 author = i.css('small.author::text').extract()
在spider中的Python文件中输入的是 author = i.css('span small::text').extract()
两个参数为什么不一样呢?我还是没懂

灰晨 发表于 2021-8-24 14:56:32

翻译翻译,就是定位元素的条件不一样。
第一个是   直接定位一个small标签,该标签的类名为author的正文
第二个是    定位一个span标签下的small标签的正文
定位方式不一样,可最后都指向同一个地方
具体要怎么定位,只能具体问题具体分析
比如,
第一个 可能存在该网页有多个类名为author的small标签的情况
第二个 也可能出现span标签下有多个small标签的情况

飞花落尽 发表于 2021-8-24 15:21:44

wp231957 发表于 2021-8-24 14:35
在我看来并没有什么区别都是一样的东东
small.author::text   这个表示 取small标签 并且类名=autho ...

懂了,谢谢老哥
页: [1] 2
查看完整版本: 为什么爬虫的author的关键字不一样(63讲)?