抓取网页数据 php(WebScraper的一个扩展插件,安装后你可以直接在F12调试工具里使用)
优采云 发布时间: 2021-12-04 10:28抓取网页数据 php(WebScraper的一个扩展插件,安装后你可以直接在F12调试工具里使用)
我是小z
我经常遇到一些简单的需求,需要在某个网站上爬取一些数据,但是这些页面的结构非常简单,数据量也比较少。可以通过编写自己的代码来实现,但这不是一个好主意。大锤?
目前市面上有一些比较成熟的零代码爬虫工具,比如优采云,有现成的模板可以使用,也可以自己定义一些爬虫规则。不过今天要介绍的是另一个神器——Web Scraper,它是Chrome浏览器的一个扩展。安装完成后可以直接在F12调试工具中使用。
# 1. 安装网络爬虫
有条件的可以直接到店里搜索Web Scraper安装
没有条件的同学可以来这个网站()下载crx文件离线安装。具体方法可以借助搜索引擎解决
安装完成后,需要重启Chrome一次,然后F12就可以看到该工具了
# 2. 基本概念和操作
在使用Web Scraper之前,需要先解释一下它的一些基本概念:
站点地图
直译,它是一个 网站 地图。有了这个地图爬虫,我们就可以跟随它来获取我们需要的数据。
所以,sitemap其实可以理解为网站的爬虫程序。要抓取多个 网站 数据,必须定义多个站点地图。
站点地图支持导出和导入,这意味着您编写的站点地图可以与他人共享。
从下图可以看出,sitemap代码是一串JSON配置
只要拿到这个配置,就可以导入别人的站点地图
选择器
直译,它是一个选择器。为了从一个充满数据的 HTML 页面中检索数据,需要一个选择器来定位我们数据的特定位置。
每个 Selector 可以获取一个数据。获取多条数据,需要定位多个Selector。
Web Scraper 提供的Selector 有很多,但是本文文章 只介绍了几个最常用、覆盖面最广的Selector。了解一两个之后,其他的原理都差不多,后面我会私下详细了解。可以上手了。
Web Scraper 使用 CSS 选择器来定位元素。如果你不知道,没关系。在大多数情况下,您可以通过鼠标单击直接选择元素。Web Scraper 会自动解析出对应的 CSS。小路。
选择器可以嵌套,子选择器的 CSS 选择器作用域是父选择器。
正是这种无休止的嵌套关系,让我们能够递归地抓取整个网站数据。
下面是我们后面经常放的selector拓扑,可以用来直观的展示Web Scraper的爬取逻辑
数据抓取和导出
定义站点地图规则后,单击“抓取”开始抓取数据。
数据被抓取后,不会立即显示在页面上。您需要手动单击刷新按钮才能查看数据。
最终数据也可以导出为 csv 或 xlsx 文件。
# 3. 寻呼机抓取
爬取数据最经典的模型是列表、分页和详细信息。接下来我将围绕这个方向爬取CSDN博客文章,介绍几个Selector的用法。
寻呼机可以分为两种类型:
在早期版本的 web-scraper 中,这两种抓取方式是不同的。
对于一些网站来说已经足够了,但是它有很大的局限性。
经过我的实验,使用Link选择器的第一个原理就是把下一页a标签的超链接取出来,然后去访问,但是并不是所有的网站下一页都是通过a实现的标签。
如果使用js*敏*感*词*事件,然后像下面这样跳转,就不能使用Link选择器了。
在新版本的网页爬虫中,对导航分页器提供了特殊的支持,并且增加了一个分页选择器,可以完全适用于两种场景。下面我将分别演示。
寻呼机抓取而不重新加载页面
点击特定的 CSDN 博文,拉到底部查看评论区。
如果你的文章很火,当有很多同学的评论时,CSDN会分页展示,但是不管评论在哪一页,都属于同一篇文章文章@ >、当你浏览任何页面的评论区时,博文不需要刷新,因为这种分页不会重新加载页面。
对于这种不需要重新加载页面的点击,可以使用Element Click来解决。
最后十个必须注意的一个,要选择root和next_page,只有这样,才能递归爬取
最终爬取效果如下
使用Element Click的sitemap配置如下,可以直接导入我的配置进行研究,下载配置文件:
当然,对于分页之类的东西,网络爬虫提供了更专业的分页选择器。它的配置更加精简,效果最好。
对应的sitemap配置如下,可以直接导入使用,并下载配置文件:
要重新加载的页面的寻呼机抓取
CSDN博客文章列表,拉到底部,点击特定页面按钮,否则最右边的下一页将重新加载当前页面。
对于这种寻呼机,Element Click 无能为力。读者可自行验证,仅可抓取一页后关闭。
而且作为一个为分页而生的Pagination选择器,自然适用
爬取的拓扑同上,这里不再赘述。
对应的sitemap配置如下,可以直接导入学习,下载配置文件:
# 4. 爬取二级页面
在CSDN博客列表页面,显示的信息比较粗糙,只有标题、发表时间、阅读量、评论数、是否原创。
如果您想获取更多信息,如博文正文、点赞数、采集数、评论区内容等,必须点击具体博文链接查看
网络爬虫的操作逻辑是与人相通的。如果你想抓取博文的更详细信息,你必须打开一个新页面才能获取,而网络爬虫的链接选择器恰好可以做到这一点。
爬取路径拓扑如下
爬取的效果如下
sitemap配置如下,可以直接导入使用,下载配置文件:
# 5. 写在最后
以上对分页和二级页面的抓取方案进行了梳理,主要有:pager抓取和二级页面抓取。
只要学会了这两个,你就已经可以处理大部分结构化的网络数据了。