采集利器 - Web Scraper教学及示例
声明
本文章是以学习和交流为目的,数据源所有权归属原网站及所有者,严禁利用本文所提流程和数据进行盈利。
“砸钉子的方式有很多种,有的时候自己最熟悉的锤子反而会砸到自己”
背景
最近接到了一个协助请求,是采集一个网站,传统的“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教学及示例相关推荐
- PHP采集利器:Snoopy
PHP采集利器:Snoopy 2012-08-19 22:48:32| 分类: 默认分类 |字号 订阅 下载地址:http://sourceforge.net/projects/snoopy/ Sn ...
- 地图选择器怎么用_简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用....
[ 这是简易数据分析系列的第 15 篇文章 ] 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进 ...
- Web Scraper入门
简介 Web Scraper是一款浏览器插件,用在简单的数据爬取上,一定程度上可以代替selenium,减少代码编写. 官方文档 安装 从谷歌商店或火狐商店进行下载.下载完成后重启浏览器,按F12即可 ...
- Django Web框架教学笔记-1
<Django Web框架教学笔记> 目录 文章目录 <Django Web框架教学笔记> 目录 Django框架的介绍 Django的安装 Django框架开发 创建项目的指 ...
- 新媒体人必备数据分析工具|Web Scraper初级用法
关注公众号:Python爬虫数据分析挖掘,免费获取更多开源项目源码 对于新媒体运营来说,数据分析是必备的能力之一.工作中很多时候都会有很多需要进行数据收集的情况,这时候如果采用手动采集的情况,不仅效率 ...
- Web Scraper 翻页——抓取分页器翻页的网页(Web Scraper 高级用法)| 简易数据分析 12
这是简易数据分析系列的第 12 篇文章. 前面几篇文章我们介绍了 Web Scraper 应对各种翻页的解决方法,比如说修改网页链接加载数据.点击"更多按钮"加载数据和下拉自动加载 ...
- 2021年大数据ELK(二十二):采集Apache Web服务器日志
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...
- webscraper多页爬取_数据收集:web scraper 多页(无规律url)抓取
前言 web scraper是一个很好用的Chrome爬虫插件,它易学易用,能够满足大部分需求,而且因为是基于浏览器渲染的,所以能回避很多反爬虫问题.另外,web scraper可以多开进程,对于一些 ...
- web scraper 抓取网页数据的几个常见问题
如果你想抓取数据,又懒得写代码了,可以试试 web scraper 抓取数据. 相关文章: 最简单的数据抓取教程,人人都用得上 web scraper 进阶教程,人人都用得上 如果你在使用 web s ...
- python动态爬取不一样的url_什么情况?python这次居然被web scraper比下去了
周末,永恒君和一位B站网友讨论交流了一下关于web scraper爬取网页的问题.今天来和各位分享一下,希望能给大家有帮助. 需求 1.爬取的网站地址: http://wenshu.court.gov ...
最新文章
- Linux系统管理必备知识之查看系统用户和用户组
- 访问系统相册或调用摄像头
- Java基础:类加载器
- C语言两班平均成绩,两班工人的平均日产量的标准差系数分别为()。A.甲班11.44%B.甲班8.41%C.乙班12.51%D.乙班9.89% - 作业在线问答...
- linux中使用u盘和光驱的命令_Linux文件操作高频使用命令
- 明源云:与阿里云生态共同成长
- Kubernetes之(五)快速部署应用
- 实例:从一个文件中读取销售记录,并合并生成销售报告,实现销售册数,总销售额,平均售价...
- Apache Kylin 部署之不完全指南
- Python+Django数据库配置及使用——执行原始SQL并返回模型实例
- 解决UITableView分割线距左边有距离的办法
- 一个有情怀的PPT模板下载网站
- Linux查看cuda版本
- 防止win10自动更新——指定一个错误的升级服务器地址
- 提交application/x-www-form-urlencoded类型数据
- 硬盘安装linux系统步骤分区,Linux系统“分区”方法再谈安装!(一)
- 伤害世界怎么自建服务器,伤害世界服务器怎么建 伤害世界服务器架设教程攻略...
- Law of continuity
- dw编写html缩小间距,dw段落行距怎么设置 用DW怎么控制文章的行间距
- “云钉一体”战略解读:阿里打通了数字化的“罗马引水桥”
热门文章
- 树莓派+L9110S电机模块
- pgm图像修改java_PGM图片格式与代码
- Unity2D音游案例-节奏大师教程+源码+素材
- pthread编译时报错的解决方法
- Error in driver during machine creation: Machine didn‘t return an IP after 120 seconds, aborting
- 大数据可视化 课堂笔记-1
- L2D1 linux下deb包管理及常用shell命令
- 来瞧瞧这40个效果惊人的单页设计
- HDS NAS原理及Storage Pool方案
- Android中的短信收不到问题,手机收不到短信怎么回事?怎么恢复