前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用CssSelector直接在浏览器开发工具上快速获取网页内容

使用CssSelector直接在浏览器开发工具上快速获取网页内容

作者头像
Excel催化剂
发布2021-08-18 11:43:32
2.2K0
发布2021-08-18 11:43:32
举报
文章被收录于专栏:Excel催化剂

有时我们在一个网页上,想获取某些内容,例如笔者在制作轮播图功能时,想获取一些示例图片链接,如果一张张图片链接去复制,太低效了,或者打开一个爬虫工具来采集,除非需要批量获取多个页面,否则又太繁琐了。

本文给大家一个小技巧,可以快速完成这些临时性小需求,用到的知识是CSS的选择器功能。

整个过程分几个步骤,下面分别讲解。

一、获取所要元素的CSS Selector表达式

当下假设已经会一些CSS Selector知识,如果这步没过,后面就没有意义了,任何网页采集的前提是会一点xpath和CSS Selector知识。

现代网页技术中,大量使用CSS来布局页面,相对来说使用CSS选择器可能比xpath来定位网页内容更方便,毕竟前端工程师自己就是用CSS来定位元素并设置格式,我们用它来定位元素并获取内容而已。

具体CSS选择器的知识,想深入学习,可以自行到W3School等地方学习,

例如此链接:https://www.w3school.com.cn/css/css_selectors.asp

这里有更高级的CSS选择器知识:https://www.w3school.com.cn/css/css_selector_type.asp

这里再啰嗦下整个定位网页内容的方法

1.找到自己想要的网页内容,如图中的轮播图,鼠标右键点击【检查】按钮,定位到此元素
2.观察下整个网页元素结构,特别留意下其往上几个父级节点

以下图中,我们可发现整个轮播图,其实是一个class为promo-bd的div节点下的内容,包含好几个div,其中一个就是我们定位的图片,其他几个是一些隐藏的轮播图片。

CSS选择器定位,一般用多个类名去限定其范围,即当前的节点类名,往上再找其父级唯一的类名来辅助定位下。

3.使用ChroPath工具,辅助定位,找到最终需要的内容对应的CSS Selector表达式。

在Excel催化剂网页采集教程中,曾经介绍过ChroPath这个工具,用来定位Xpath,它同样可以定位CSS Selector。

如下图中,我们找到.promo-bd这个类名,整个网页是唯一的。

再缩小范围,加上每个轮播图的特定的类名mod,此时的CSS Selector表达式为【.promo-bd .mod】,两个类之间有空格,代表找promo-bd类下面的后代mod类。

此时找到7个结果,我们需要的是5个轮播图,有时找不准没关系,把图片下载下来,再排除多余部分,可能比精确找到5个元素更方便。

再回到我们需要的图片链接元素,其为img节点,上一级是a节点。

所以我们最终写出的CSS Selector为【.promo-bd .mod a>img】,大于号代表是父到子级,而不是空格的无论哪个后代。

二、打开浏览器开发工具的【console】面板,输入指定命令即可获取到所需内容

先给出最终结果,再慢慢一步步给大家讲解原理。

输入:Array.from(document.querySelectorAll(".promo-bd .mod a>img")).map(s=>s.currentSrc).join("\n")

即拿到所要的图片链接文本,自行复制粘贴到Excel中即可使用(Excel催化剂有批量下载功能,有了链接,轻松将链接内容下载到本地并可自定义重命名自己的需要的名字)。

如同Excel函数一样,多个函数嵌套,可以实现复杂的功能。

1.使用querySelectorAll将CSS Selector的内容查询到手

下图中,可看到我们查出一个集合,内含7个对象,再展开可知,我们想要的内容在currentSrc属性里。

2.将集合转成数组

数组的一个好处是,可以用后续的map方法遍历提取所要的内容。

3.再加上map函数,遍历出自己所需的元素属性

此时已经将上面的对象数组,变人字符串数组

4. 最后一步,将数组转换为字符串,用换行分隔

此时头尾只有一个双引号,中间元素没有双引号了,复制出去不用任何加工。

5.复制粘贴到Excel单元格中再简单加工和下载

最后我们也发现,之所以为7个元素,其实是已经有重复出现了,Excel里简单去重下,就是我们所要的5个元素。

当然,最方便的方式是直接Excel里加工好,直接下载,这就是Excel催化剂为大家准备好的【批量下载网页文件】功能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel催化剂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、获取所要元素的CSS Selector表达式
    • 1.找到自己想要的网页内容,如图中的轮播图,鼠标右键点击【检查】按钮,定位到此元素
      • 2.观察下整个网页元素结构,特别留意下其往上几个父级节点
        • 3.使用ChroPath工具,辅助定位,找到最终需要的内容对应的CSS Selector表达式。
        • 二、打开浏览器开发工具的【console】面板,输入指定命令即可获取到所需内容
          • 1.使用querySelectorAll将CSS Selector的内容查询到手
            • 2.将集合转成数组
              • 3.再加上map函数,遍历出自己所需的元素属性
                • 4. 最后一步,将数组转换为字符串,用换行分隔
                  • 5.复制粘贴到Excel单元格中再简单加工和下载
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档