鱼C论坛

 找回密码
 立即注册
查看: 1684|回复: 20

[已解决]为什么爬虫的author的关键字不一样(63讲)?

[复制链接]
发表于 2021-8-24 13:05:01 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 飞花落尽 于 2021-8-24 13:21 编辑

一个是small.author
另一个是span small
最佳答案
2021-8-24 13:05:02
飞花落尽 发表于 2021-8-24 14:09
在Anaconda里输入 author = i.css('small.author::text')[0].extract()
在spider中的Python文件中输入 ...

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


最佳答案

查看完整内容

在我看来 并没有什么区别 都是一样的东东 small.author::text 这个表示 取small标签 并且类名=author 的正文 span small::text' 这个表示取span标签的子标签small标签的正文 具体就要看应用环境 比如上面的 适合只有一个small标签 就不需要添加他的父节点标签span 下面的 适和span下面只有一个small 标签 就不需要添加类名 总之 都是一样的 看个人喜好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 13:05:02 | 显示全部楼层    本楼为最佳答案   
飞花落尽 发表于 2021-8-24 14:09
在Anaconda里输入 author = i.css('small.author::text')[0].extract()
在spider中的Python文件中输入 ...

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


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 13:09:40 From FishC Mobile | 显示全部楼层
不知所云
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 13:17:12 | 显示全部楼层

就是一个在Anaconda里输入 author = i.css('small.author::text')[0].extract()
另一个在spider中的Python文件中输入的是 author = i.css('span small::text')[0].extract()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 13:20:33 | 显示全部楼层
这是py里的
  1. def parse(self,response):
  2.         for i in response.css('div.quote'):
  3.             yield(dict(
  4.                 text = i.css('span.text::text')[0].extract(),
  5.                 author = i.css('span small::text')[0].extract(),
  6.                 tags = i.css('div.tags a.tag::text').extract()
  7.                 ))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 13:21:21 | 显示全部楼层

这是anaconda里的
>>> for i in response.css('div.quote'):
...     text = i.css('span.text::text')[0].extract()
...     author = i.css('small.author::text')[0].extract()
...     tags = i.css('div.tags a.tag::text').extract()
...     print(dict(text=text,author = author,tags=tags))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 13:21:29 From FishC Mobile | 显示全部楼层
飞花落尽 发表于 2021-8-24 13:17
就是一个在Anaconda里输入 author = i.css('small.author::text')[0].extract()
另一个在spider中的Pyth ...

爬虫不都是针对具体网站以及待采集的信息
才好说如何敲代码,你这单独拿出这两句
脱离了上下文,谁知道是咋回事呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

我主要是想问下css后面的字符串含义是什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

抽象含义,是审查元素里随便找的吗?还是别的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 13:33:42 From FishC Mobile | 显示全部楼层
飞花落尽 发表于 2021-8-24 13:29
我主要是想问下css后面的字符串含义是什么?

css选择器,其实看个人喜好,我个人比较喜欢xpath有时候xpath取不到,才去考虑其他
至于啥是css选择器,你多解析一些网站,自然明了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

不是css选择器,是css后面的那个字符串'small.author::text'是从网页的审查元素里随便找的还是特定的去找?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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


就是css选择器参数的含义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

审查元素里面右键有个css的复制,你粘一下就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 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的数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 13:59:08 | 显示全部楼层
wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了

在Anaconda里输入 author = i.css('small.author::text')[0].extract()
在spider中的Python文件中输入的是 author = i.css('span small::text')[0].extract()
这两个提取的关键字是怎么看的?我还是没懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 14:00:14 | 显示全部楼层
wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了

在Anaconda里输入 author = i.css('small.author::text')[0].extract()
在spider中的Python文件中输入的是 author = i.css('span small::text')[0].extract()
这两个关键字是怎么看的?我还是没懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 14:03:15 | 显示全部楼层
飞花落尽 发表于 2021-8-24 13:57
by Albert Einstein
        (about)
        

在Anaconda里输入 author = i.css('small.author::text')[0].extract()
在spider中的Python文件中输入的是 author = i.css('span small::text')[0].extract()
这两个关键字是怎么找的?我还是没懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-24 14:09:42 | 显示全部楼层
wp231957 发表于 2021-8-24 13:40
审查元素里面右键有个css的复制,你粘一下就知道了


在Anaconda里输入 author = i.css('small.author::text')[0].extract()
在spider中的Python文件中输入的是 author = i.css('span small::text')[0].extract()
两个参数为什么不一样呢?我还是没懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-24 14:56:32 | 显示全部楼层
翻译翻译,就是定位元素的条件不一样。
第一个是   直接定位一个small标签,该标签的类名为author的正文
第二个是    定位一个span标签下的small标签的正文
定位方式不一样,可最后都指向同一个地方
具体要怎么定位,只能具体问题具体分析
比如,
第一个 可能存在该网页有多个类名为author的small标签的情况
第二个 也可能出现span标签下有多个small标签的情况

评分

参与人数 1鱼币 +5 收起 理由
飞花落尽 + 5 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

懂了,谢谢老哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 22:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表