声明

本文章是以学习和交流为目的,数据源所有权归属原网站及所有者,严禁利用本文所提流程和数据进行盈利。

“砸钉子的方式有很多种,有的时候自己最熟悉的锤子反而会砸到自己”

背景

最近接到了一个协助请求,是采集一个网站,传统的“list+content”的页面模式,用PHP或者采集器总会出现各种莫名的问题,基本上到这一步后我都会采用“node+puppteer”来搞,采用自动化测试工具来模拟操作,虽然说是把万能锤子,但是造这个锤子的过程和技术复杂度还是存在的,于是转向之前一直考虑但没有尝试的方向——浏览器插件,基本原理和思路和自动化工具基本一致,不过使目标逻辑与浏览器有更好的契合,感觉比较优雅。
在查阅资料时,发现了Web Scraper,参照文档和教程将其应用在了目标网站采集上,最终也获得了数据,整个操作流程如果熟悉的话,可以很快的设定好相应规则实施采集,现将流程记录一下。

流程

1. 安装 web scraper
如果你掌握科学上网技巧,可以登录chorme网上商店直接搜索进行安装

或者百度搜索“web scraper 离线安装包”以获得相关支持,离线安装过程就不再赘述。
2. 分析目标站
可以看到这是一个典型的列表+内容的显示方式,现在需要将列表和内容页都采集下来,传统的采集思路的话就是用程序将整个列表页拉回来,然后解析其中的超链跳转,再获取其中内容页面。


现在来看一下该如何用 web scraper 进行数据采集。
3. 设定规则
因为采集工具是通用的,至于说怎么采、采那些数据这些规则都需要用户来根据实际情况进行配置,先了解一下web scraper怎么打开和基本页面
① 打开工具
在目标网页页面打开开发者工具(F11或右键-检查),可以看到工具栏中最后多了一个同名标签页,点击标签页便进入了工具页面

② 新建采集任务
采集之前需要先建立一个 Sitemaps,可以把它理解为一个任务,选择 Create new sitemap - Create Sitemap

Sitemap name为任务名称,按需创建即可。
Start URL 为你采集页面,如果是列表+内容模式,建议填写列表页。
然后 Create Sitemap,一个基本的任务就建立好了。

③ 建立列表页规则
点击 Add new selector 用以建立一个选择器,告知插件应该采什么节点,对于这种列表页也存在信息的页面,我们将每一个信息作为一个块,块中包含了各种属性信息,建立方式如下:

需要将 Multiple 选项勾上,该选择可以理解为需要循环获取。


添加完毕后我们该标注信息块中的内容,具体操作方法和上面一致,但是要将该信息的父选择器选为刚才建立好的信息块节点。


其余节点数据操作一致,记得选好父节点。
④ 检查已建立规则
回到首页

我们可以看到刚才建立的根节点,点击 Element preview 可以查看选择的节点,点击Data preview可以看到配置好的节点数据,如果为null 请检查前面的操作是否正确。

工具提供了查看流程图的功能,可以很好的了解业务流,路径如下

点击Sitemap demo - Scrape,进入采集启动页面,配置请求时间,时间不要太短,防止对源站产生不利影响,自主权衡。

点击 Start 会弹出采集框,不需要管它,回到工具中,点击 refresh 获取数据

至此,列表页采集完毕,下面开始考虑如何采集内容页面。
⑤ 内容页规则设计
点击列表页时是打开新页面,那么该如何采集数据呢?
随便打开一个内容页,然后将地址复制回刚才列表页地址栏中访问。
现在希望插件能模拟操作,规则如下:

Type 这边的话,我们需要选择 Popup Link,看了一些教程都是Link,适用于超链不同的跳转方式,根据需求选择即可。
现在看一下 graph

看到下面建立的 jump 节点后,即为告知工具模拟链接跳转操作进入内容页。
剩下的就简单了,还是按照前面列表页的节点选择方式,不过此时的父节点应该选择为刚才建立的 jump节点。
完整节点如下:

⑥ 关于翻页
我们不可能直采第一页的内容,对于这个需求,插件也给出方法,即在Start Url中填写page 参数,
[1-20]标识1到20页,按需填写

⑦ 采集
Scrap

4. 导出数据

总结

我们在建立节点时,能看到很多类型,这些也是为了更好的适应诸如瀑布流等信息的页面,还有很多的地方没有用,有机会再深入研究。

采集利器 - Web Scraper教学及示例相关推荐

  1. PHP采集利器:Snoopy

    PHP采集利器:Snoopy 2012-08-19 22:48:32|  分类: 默认分类 |字号 订阅 下载地址:http://sourceforge.net/projects/snoopy/ Sn ...

  2. 地图选择器怎么用_简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用....

    [ 这是简易数据分析系列的第 15 篇文章 ] 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进 ...

  3. Web Scraper入门

    简介 Web Scraper是一款浏览器插件,用在简单的数据爬取上,一定程度上可以代替selenium,减少代码编写. 官方文档 安装 从谷歌商店或火狐商店进行下载.下载完成后重启浏览器,按F12即可 ...

  4. Django Web框架教学笔记-1

    <Django Web框架教学笔记> 目录 文章目录 <Django Web框架教学笔记> 目录 Django框架的介绍 Django的安装 Django框架开发 创建项目的指 ...

  5. 新媒体人必备数据分析工具|Web Scraper初级用法

    关注公众号:Python爬虫数据分析挖掘,免费获取更多开源项目源码 对于新媒体运营来说,数据分析是必备的能力之一.工作中很多时候都会有很多需要进行数据收集的情况,这时候如果采用手动采集的情况,不仅效率 ...

  6. Web Scraper 翻页——抓取分页器翻页的网页(Web Scraper 高级用法)| 简易数据分析 12

    这是简易数据分析系列的第 12 篇文章. 前面几篇文章我们介绍了 Web Scraper 应对各种翻页的解决方法,比如说修改网页链接加载数据.点击"更多按钮"加载数据和下拉自动加载 ...

  7. 2021年大数据ELK(二十二):采集Apache Web服务器日志

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...

  8. webscraper多页爬取_数据收集:web scraper 多页(无规律url)抓取

    前言 web scraper是一个很好用的Chrome爬虫插件,它易学易用,能够满足大部分需求,而且因为是基于浏览器渲染的,所以能回避很多反爬虫问题.另外,web scraper可以多开进程,对于一些 ...

  9. web scraper 抓取网页数据的几个常见问题

    如果你想抓取数据,又懒得写代码了,可以试试 web scraper 抓取数据. 相关文章: 最简单的数据抓取教程,人人都用得上 web scraper 进阶教程,人人都用得上 如果你在使用 web s ...

  10. python动态爬取不一样的url_什么情况?python这次居然被web scraper比下去了

    周末,永恒君和一位B站网友讨论交流了一下关于web scraper爬取网页的问题.今天来和各位分享一下,希望能给大家有帮助. 需求 1.爬取的网站地址: http://wenshu.court.gov ...

最新文章

  1. Linux系统管理必备知识之查看系统用户和用户组
  2. 访问系统相册或调用摄像头
  3. Java基础:类加载器
  4. C语言两班平均成绩,两班工人的平均日产量的标准差系数分别为()。A.甲班11.44%B.甲班8.41%C.乙班12.51%D.乙班9.89% - 作业在线问答...
  5. linux中使用u盘和光驱的命令_Linux文件操作高频使用命令
  6. 明源云:与阿里云生态共同成长
  7. Kubernetes之(五)快速部署应用
  8. 实例:从一个文件中读取销售记录,并合并生成销售报告,实现销售册数,总销售额,平均售价...
  9. Apache Kylin 部署之不完全指南
  10. Python+Django数据库配置及使用——执行原始SQL并返回模型实例
  11. 解决UITableView分割线距左边有距离的办法
  12. 一个有情怀的PPT模板下载网站
  13. Linux查看cuda版本
  14. 防止win10自动更新——指定一个错误的升级服务器地址
  15. 提交application/x-www-form-urlencoded类型数据
  16. 硬盘安装linux系统步骤分区,Linux系统“分区”方法再谈安装!(一)
  17. 伤害世界怎么自建服务器,伤害世界服务器怎么建 伤害世界服务器架设教程攻略...
  18. Law of continuity
  19. dw编写html缩小间距,dw段落行距怎么设置 用DW怎么控制文章的行间距
  20. “云钉一体”战略解读:阿里打通了数字化的“罗马引水桥”

热门文章

  1. 树莓派+L9110S电机模块
  2. pgm图像修改java_PGM图片格式与代码
  3. Unity2D音游案例-节奏大师教程+源码+素材
  4. pthread编译时报错的解决方法
  5. Error in driver during machine creation: Machine didn‘t return an IP after 120 seconds, aborting
  6. 大数据可视化 课堂笔记-1
  7. L2D1 linux下deb包管理及常用shell命令
  8. 来瞧瞧这40个效果惊人的单页设计
  9. HDS NAS原理及Storage Pool方案
  10. Android中的短信收不到问题,手机收不到短信怎么回事?怎么恢复