如何在神箭手上快速开发爬虫——第七课 如何爬取登录才可见的数据【5sing歌曲信息采集】

  1. 1、本课完整的爬虫代码可以在神箭手示例代码中查看
  2. 2、如何在神箭手上运行代码,请查看文档
  3. 3、更详细的爬虫开发教程,请查看文档  


大家好,我是神箭手的游牧老师~

今天继续给大家带来 如何在神箭手上快速开发爬虫 系列教程的第七课:如何爬取登录才可见的数据。

对于基础知识还不熟悉的童鞋,请先从第一课开始学起啊:第一课点这里


今天我们来采集5sing网站的歌曲信息,打开网站:http://5sing.kugou.com/yc/3497845.html。点击”下载”,可以发现,如果要看到歌曲的下载地址,是需要先登录的:



那如何采集歌曲的下载地址数据呢?就需要在开始爬取的时候,先进行模拟登录。先分析登录请求的地址和发送的数据等,然后再在爬虫代码里发送登录请求。

神箭手会自动保存和使用所有请求的cookie,所以只要请求登录成功,就可以正常采集了!


第一步:分析并发送登录请求

使用浏览器的开发者工具,很容易查找到点击登录按钮后发送的请求:



看上去还是比较简单的post请求的,那么我们就很容易写出来登录请求的函数:

如何在神箭手上快速开发爬虫——第六课 如何爬取分类数据【春雨医生健康资讯文章采集】

1、本课完整的爬虫代码可以在神箭手示例代码中查看
2、如何在神箭手上运行代码,请查看文档
3、更详细的爬虫开发教程,请查看文档  


大家好,我是神箭手的游牧老师~

今天继续给大家带来 如何在神箭手上快速开发爬虫 系列教程的第六课:如何爬取分类数据。

对于基础知识还不熟悉的童鞋,请先从第一课开始学起啊:第一课点这里


神箭手为了简化爬虫代码,默认是全站爬虫,会自动从入口页链接中自动发现新的链接,全站爬取。但是在爬取文章或者商品数据的时候,我们可能需要精准采集,比如只爬取某些分类的文章或者某个店铺某个关键字的商品。对于这种情况,有两种处理办法:

1、优化列表页和内容页url正则表达式,使其只匹配需要的url;

2、关闭自动链接发现,手动添加需要的url到待爬队列中。

第一种办法没什么好说的,大家多熟悉熟悉正则表达式即可。本文主要讲解第二种办法。关闭自动链接发现和手动添加新的链接,都是在网页下载完成后的回调函数中处理的。


举个例子,按分类爬取春雨医生的健康资讯文章:



我们首先通过自定义输入(在本系列上一篇文章有具体讲解如何使用自定义输入),传入要爬取的分类的首页url,比如:https://www.chunyuyisheng.com/pc/health_news/?channel_id=21

// 输入要爬取的分类url,可以输入多个 
var channelUrls = ["https://www.chunyuyisheng.com/pc/health_news/?channel_id=21", "https://www.chunyuyisheng.com/pc/health_news/?channel_id=35"];//@input(channelUrls, 要爬取的资讯分类首页url)

然后在爬取前,将这些首页url添加到入口页url列表中:

如何在神箭手上快速开发爬虫——第五课 如何设置自定义输入【58同城二手房采集】

  1. 本课完整的爬虫代码可以在神箭手示例代码中查看
  2. 如何在神箭手上运行代码,请查看文档
  3. 更详细的爬虫开发教程,请查看文档


大家好,我是神箭手的游牧老师~

今天继续给大家带来 如何在神箭手上快速开发爬虫 系列教程的第五课:如何设置爬虫的自定义输入。

从这一课开始,我们要进入进阶学习了,对于基础知识还不熟悉的童鞋,请先从第一课开始学起啊:第一课点这里

在交付爬虫使用的时候,我们通常需要能够让使用者按照自己的需求来爬取,比如只爬某些分类的文章或者只爬某个城市的数据等。那这种变量就不能直接在代码里写死了,而需要有一个界面可以让使用者设置,然后在代码中根据使用者设置的具体值来爬取某些网页。

对于这种使用场景,神箭手提供了最简单灵活的解决方案:自定义输入。开发者只需要通过注释标注某些变量,使用的时候就可以通过神箭手的爬虫设置界面输入变量值,然后在代码中根据具体值来处理了。so easy~

如何在神箭手上快速开发爬虫——第四课 如何爬取分页数据【蘑菇街商品评论】

注:

1、本课完整的爬虫代码可以在神箭手示例代码中查看:http://www.shenjianshou.cn/index.php?r=demo/docs&demo_id=500006

2、如何在神箭手上运行代码,请查看文档:http://docs.shenjianshou.cn/overview/guide/develop/crawler.html

3、更详细的爬虫开发教程,请查看文档:http://docs.shenjianshou.cn/develop/summary/summary.html



大家好,我是神箭手的游牧老师~

今天继续给大家带来 如何在神箭手上快速开发爬虫 系列教程的第四课:如何爬取分页数据。


通过前三课的学习,相信大家爬爬文章、爬爬商品啥的已经很简单了(还不会的筒子面壁去( ̄▽ ̄)”)。那么今天呢,主要跟大家分享下爬取分页数据的方法。

分页数据指的是要爬取的数据在多个分页上,无法通过请求一个页面一次抽取出来。举个常见的栗子,就是电商商品的评论了:


如果要将每个商品的所有评论爬取为一个商品数据的一个字段,因为在商品的详情页内,评论是分页显示的,所以需要通过分别访问每页评论抽取。

如何在内容页中抽取分页数据,神箭手提供了两种方法:

如何在神箭手上快速开发爬虫——第三课 如何爬取列表页数据【87870 VR资讯文章】

注:
1、本课完整的爬虫代码可以在神箭手示例代码中查看:http://www.shenjianshou.cn/index.php?r=demo/docs&demo_id=500004
2、如何在神箭手上运行代码,请查看文档:http://docs.shenjianshou.cn/overview/guide/develop/crawler.html

3、更详细的爬虫开发教程,请查看文档:http://docs.shenjianshou.cn/develop/summary/summary.html


大家好,好久不见了!游牧老师最近一直在忙着开发咱们神箭手的平台功能,近期我们又上线了很多强大的function,还上线了新版更萌萌哒的官网(大家喜欢么( ̄▽ ̄)”)


今天继续给大家讲解新的爬虫开发知识点:如何爬取列表页的数据


看过之前两课的童鞋们应该对神箭手上开发爬虫的基本过程很了解了,数据都是从内容页中使用xpath进行抽取的。那么在实际开发中,我们会遇到数据需要从列表页中抽取的情况,举个栗子:

打开网址:http://hy.87870.com/news/list-0-0-1.html

我们要爬取87870最新资讯里的文章,包括文章标签。我们可以看到文章标签(如上图红圈内的)是在文章列表页中的,那么就需要从列表页中抽取数据啦~


神箭手提供了”内容页附加数据”的方式将列表页数据添加到内容页内容中,从而统一从内容页抽取数据的方式,从而可以轻松爬取到列表页数据:http://docs.shenjianshou.cn/develop/configs/field.html#SourceType-UrlContext


基本过程呢,主要分为两步:

第一步,在onProcessHelperPage回掉函数中,从列表页读取需要的数据,附加给内容页URL

12