『网络爬虫』一篇文章带你了解webscraper爬虫插件( 四 )


本文插图
接着 , 我们分别配置elements和next的父节点 , next的父节点除了root以外 , 我们将next自身也添加为父节点 。
『网络爬虫』一篇文章带你了解webscraper爬虫插件
本文插图
elements的父节点除了root以外 , 我们也将next添加为父节点 。
『网络爬虫』一篇文章带你了解webscraper爬虫插件
本文插图
最后 , 我们来看下整个抓取结构图 , 如下所示 , 点击next , 可以看到整个结构会无限循环下去 , 通过这种方式 , 我们就可以构建一个通用的翻页循环抓取结构!

『网络爬虫』一篇文章带你了解webscraper爬虫插件
本文插图
五:滚动加载场景的设计模式
通过点击下一页来翻页是比较常见的翻页方式 , 除此以外 , 我们还会经常看到通过滚动来加载更多数据的场景 , 这种场景我们又该如何解决呢?
其实很简单 , webscraper已经帮我们设计好了这种元素类型 , 即selector type里的elements scroll down , 在选择type时 , 将之前的elements换成这个类型即可 , 其他配置方式保持不变 , 我们即可以实现滚动加载数据的抓取 。
『网络爬虫』一篇文章带你了解webscraper爬虫插件
本文插图
六:点击加载场景的设计模式
最后再来说说另外一个点击加载数据的场景吧!我们经常会遇到有的场景 , 需要点击查看更多才能加载更多的数据 , 这种场景怎么解决呢?
当然少不了我们强大的webscraper啦!webscraper提供了一种type类型 , 即elements click , 可以轻松解决此类问题 , 接下来让我们看一个具体的实例 , 我们以亿欧网站为例 , 打开快讯栏目 , 我们可以看到如果要获取更多数据的话 , 必须点击查看更多才会加载 。

『网络爬虫』一篇文章带你了解webscraper爬虫插件
本文插图
与滚动加载场景一样 , 我们在一级selector设置element click 的选择器 , 配置内容如下:
id:选择器名称
type:选择elements click
selector:选择需要抓取的元素 , 与之前设置方式一致 , 选择元素即可
click selector:这里选择查看更多的元素 , 也即我们点击加载按钮的元素 。
click type:一种为click once , 即同一个按钮只点击一次 , 一种为click more , 同一个按钮可点击多次 , 直到按钮发生变化为止 。 这里我们选择click more , 因为需要不断点击查看更多来获取更多数据 。
click element uniqueness:判定是否同一按钮的条件 , 主要用于停止条件的判定 , 有以下四种类型可选择:
Unique Text - 有同样文本内容的按钮被视为同一按钮
Unique HTML+Text - 有同样 HTML 和文本内容的按钮被视为同一按钮
Unique HTML - 有同样 HTML 的按钮被视为同一按钮
Unique CSS Selector - 有同样 CSS 选择器的按钮被视为同一按钮
Discard initial elements(忽略初始元素)- 选择器不会选中在第一次点击按钮前就已经存在的元素 。 用在去重的场景
Delay:这里需要按照实际情况配置 , 如果等待加载的时间配置过短 , 很容易造成抓取不到数据的情况 。
『网络爬虫』一篇文章带你了解webscraper爬虫插件
本文插图
配置完click selector过后 , 接着在其二级子selector继续配置想要抓取的数据即可 。
至此 , 基本上常用的webscraper操作都介绍完了 , 掌握以上的方法 , 基本可以覆盖80%左右的爬虫场景 。 当然使用webscraper也主要是在一些小规模数据的抓取场景 , 如果要爬取较大规模的数据 , 有较大概率会遇到站点的反爬措施 , 这时就只能上代码解决啦!