若是是刚接触 web scraper 的,能够看第一篇文章。
web scraper 是一款免费的,适用于普通用户(不须要专业 IT 技术的)的爬虫工具,能够方便的经过鼠标和简单配置获取你所想要数据。例如知乎回答列表、微博热门、微博评论、淘宝、天猫、亚马逊等电商网站商品信息、博客文章列表等等。html
若是你已经用过这个工具,想必已经用它抓取过一些数据了,是否是很好用呢。也有一些同窗在看完文章后,发现有一些需求是文章中没有说到的,好比分页抓取、二级页面的抓取、以及有些页面元素选择老是不能按照预期的进行等等问题。web
本篇就对前一篇文章作一个补充,解决上面所提到的问题。浏览器
上一篇文章提到了像知乎这种下拉加载更多的网站,只要使用 Element scroll down 类型就能够了,可是没有提到那些传统分页式的网站。工具
其实分页式的网站更加简单,不用什么过多的设置,只须要在 Start URL 上作设置就能够了,拿这个豆瓣小组举例,连接地址为 https://www.douban.com/group/135641/discussion。咱们进去后点一点页面下方的页码,就能够看到地址栏上的变化,点击第 2 页的时候,在后面的地址栏多了参数 start=25 ,再点击第 1 页的时候,参数变为了 start=0 ,这是比较特殊的一种状况,它的分页是按照 25 递增的,向后递增依次为 [0,25,50,75...]。大多数的网站的递增仍是1,即[0,1,2,3...]。网站
而 web scraper 中提供了一种写法,能够设置页码范围及递增步长。写法是这样的: [开始值-结束值:步长],举几个例子来讲明一下:url
一、获取前10页,步长为1的页面 :[1-10] 或者 [1-10:1]3d
二、获取前10页,步长为10的页面:[1-100:10]code
三、获取前10页,步长为25的页面:[1-250:25]htm
如今咱们要抓取的豆瓣小组的规则就是第三中状况,因此设置 sitemap 的 Start URL 为:https://www.douban.com/group/135641/discussion?start=[0-100:25] 。blog
还有一些网站的页面,好比淘宝店铺的商品列表页,它的 url 里有好多参数,有点参数会随机变化,有些同窗这时候就蒙了,这怎么设置啊。其实有些参数并不会影响显示内容,任意设置甚至去掉都没有关系,只要找对了表示页码的参数并按照上面的作法设置就能够了。
这种状况也是比较多的,好多网站的一级页面都是列表页,只会显示一些比较经常使用和必要的字段,可是咱们作数据抓取的时候,这些字段每每不够用,还想获取二级详情页的一些内容。下面我用虎嗅网来演示一下这种状况下的抓取方式。
目标页面:https://www.huxiu.com/channel/104.html
只作简单演示,这个页面自己是下拉下载更多的页面,这里只获取默认加载的内容以及二级页面的一些属性。下面的两张图中标红的部分分别为列表页的标题、做者以及详情页的发布时间,点击列表页的标题连接会跳转到详情页面。
如今开始从头至尾介绍一下整个步骤,其实很简单:
一、在浏览器访问上面说的这个地址,而后调出 Web Scraper ,Create Sitemap ,输入一个名称和 Start URL,而后保存。
二、以后打开这个 sitemap ,点击 Add new selector。
三、输入 Id,Type 选择为 Element,点击 Select 在页面中选择列表区域,并勾选 Multiple ,保存。最后预览效果以下:
四、回到刚刚建立的 root selector,点击进入子 selector 页面,添加子 selector。
五、进入子 selector 页面后,点击 Add new selector,这一步是为了加一个跳转 selector ,为以后到详情页面搭个桥。依然是填写 Id,Type 选择为 Link 类型,点击 selector ,选择点击跳转的连接,这里就是标题,以后预览效果以下:
六、这一步完成后,下面就要到详情页选择咱们须要的内容了。点击刚刚建立的 jump 跳转 selector,点击进入它的下一级 selector 界面。这一步好多同窗不知道怎么操做了,好多同窗也就卡在了这一步,其实很简单。就在当前页面,把地址栏的地址变为任意一个详情页的地址。
七、继续 Add new selector ,输入Id,类型选择 text 便可,点击 select ,选择日期部分,最后保存。若是须要其余信息,依次添加 selector 便可。
八、最后运行,抓出来的结果是这样的。
最后,关注公众号 古时的风筝
回复关键词 「二级页面」获取本例 sitemap