中企动力 > 商学院 > 数据采集代码
  • ?

    不用写代码,史上最全QQ音乐播单数据一键采集

    泪婆娑

    展开

    本文主要介绍如何使用后羿采集器的智能模式,免费采集QQ音乐播单数据的播单名、播单链接、播放量、歌曲、歌手等信息。

    采集工具简介:

    后羿采集器是一款基于人工智能技术的网页采集器,只需要输入网址就能够自动识别网页数据,无需配置即可完成数据采集,是业内首家支持三种操作系统(包括Windows、Mac和Linux)的网络爬虫软件。

    该软件是一款真正免费的数据采集软件,对采集结果导出没有任何限制,没有编程基础的小白用户也可轻松实现数据采集要求。

    采集对象简介:

    QQ音乐是腾讯公司推出的网络音乐平台,是中国互联网领域领先的正版数字音乐服务的领先平台,有着个性明星主题:大咖装,添星妆!同时也是一款免费的音乐播放器,始终走在音乐潮流最前端,向广大用户提供方便流畅的在线音乐和丰富多彩的音乐社区服务。

    采集字段:

    播单名、播单链接、播单作者、播放量、歌曲、歌手、专辑、时长

    功能点目录:

    如何采集列表+详情页类型网页

    什么是深入采集

    采集结果预览:

    下面我们来详细介绍一下如何免费采集QQ音乐播单信息的数据,我们以经典音乐播单为例,具体步骤如下:

    步骤一:下载安装后羿采集器,并注册登录

    1、打开后羿采集器官网,下载并安装爬虫软件工具—后羿采集器软件

    2、点击注册登录,注册新账号,登录后羿采集器

    【温馨提示】您可以直接使用此款爬虫软件,不需要进行注册,但是匿名账户下的任务在切换到注册用户时会丢失,因此建议您注册后使用。

    后羿采集器为神箭手云旗下产品,如果您是神箭手用户,可直接登录。

    步骤二:新建采集任务

    1、复制QQ音乐经典音乐播单的网页(需要搜索结果页的网址,而不是首页的网址)

    2、新建智能模式采集任务

    您可以在软件上直接新建采集任务,也可以通过导入规则来创建任务。

    步骤三:配置采集规则

    1、设置提取数据字段

    在智能模式下,我们输入网址后软件即可自动识别出页面上的数据并生成采集结果,每一类数据对应一个采集字段,我们可以右击字段进行相关设置,包括修改字段名称、增减字段、处理数据等。

    在列表页上,我们需要采集QQ经典音乐播单的播单名、播单链接、播单作者及播放量等信息,字段设置效果如下:

    2、使用深入采集功能提取详情页数据

    在列表页上只展示了QQ音乐经典播单的整体信息,如果需要采集播单的具体歌曲内容,我们需要右击播单链接,然后使用“深入采集”功能,跳转到详情页进行采集。

    点此了解如何采集列表+详情页类型网页。

    在详情页上默认的是单页类型的网页,但是我们播单歌曲是列表类型的,这时候我们可以手动设置抽取字段,并修改字段名称。

    详情页字段设置效果如下:

    步骤四:设置并启动采集任务

    1、设置采集任务

    完成了详情页的采集数据添加,我们跳转回列表页,然后开始启动采集任务。在启动之前我们需要对采集任务进行一些设置,从而提高采集的稳定性和成功率。

    点击“设置”按钮,在弹出的运行设置页面中我们可以进行运行设置和防屏蔽设置,这里我们勾选“跳过继续采集”,设置“2”秒请求等待时间,勾选“不加载网页图片”,防屏蔽设置就按照系统默认设置,然后点击保存。

    2、启动采集任务

    点击“保存并启动”按钮,可在弹出的页面中进行一些高级设置,包括定时启动、自动入库和下载图片,本次示例中未使用到这些功能,直接点击“启动”运行爬虫工具。

    【温馨提示】免费版本可以使用非周期性定时采集功能,下载图片功能是免费的。个人专业版及以上版本可以使用高级定时功能和自动入库功能。

    3、运行任务提取数据

    任务启动之后便开始自动采集数据,我们从界面上可以直观的看到程序运行过程和采集结果,采集结束之后会有提醒。

    步骤五:导出并查看数据

    数据采集完成后,我们可以查看和导出数据,后羿采集器支持多种导出方式(手动导出到本地、手动导出到数据库、自动发布到数据库、自动发布到网站)和导出文件的格式(EXCEL、CSV、HTML和TXT),我们选择自己需要的方式导出。

    【温馨提示】:所有手动导出功能都是免费的。个人专业版及以上版本可以使用发布到网站功能。

  • ?

    使用fsockopen函数来实现数据采集

    冰海

    展开

    使用fsockopen()函数获取网络信息的基本做法如下:

    1、建立连接:$link = fsockopen(主机名, 端口);

    a) 含义:建立跟指定主机(web服务器)的连接,类似浏览器直接访问请求

    b) 联想与类比:$link = mysql_connect(‘....’ , ‘root’, ‘123’ );

    2、发送请求数据:fwrite(连接$link, 请求数据$request_data); 请求数据形式如下:

    3、接收响应数据:$result = fread($link, 1024*1024*8); //最多读出8M

    a) 结果,其实是一个字符串而已,可以“显示出来看”,或存入数据库,或进行其他分析使用

    4、关闭连接:fclose($link)

    代码如下:

  • ?

    国内五大主流网站内容抓取工具、采集软件大盘点

    阿布罗斯

    展开

    大数据技术用了多年时间进行演化,才从一种看起来很炫酷的新技术变成了企业在生产经营中实际部署的服务。其中,数据采集产品迎来了广阔的市场前景,无论国内外,市面上都出现了许多技术不一、良莠不齐的采集软件。

    今天,我们将对比国内五大主流采集软件优缺点,帮助你选择最适合的爬虫,体验数据hunting带来的快感。

    国内篇

    1.火车头

    作为采集界的老前辈,我们火车头是一款互联网数据抓取、处理、分析,挖掘软件,可以抓取网页上散乱分布的数据信息,并通过一系列的分析处理,准确挖掘出所需数据。它的用户定位主要是拥有一定代码基础的人群,适合编程老手。

    采集功能完善,不限网页与内容,任意文件格式都可下载具有智能多识别系统以及可选的验证方式保护安全支持PHP和C#插件扩展,方便修改处理数据具有同义,近义词替换、参数替换,伪原创必备技能Conclusion:火车头适用于编程能手,规则编写容易,软件的定位比较专业而且精准化。

    2.八爪鱼

    一款可视化免编程的网页采集软件,可以从不同网站中快速提取规范化数据,帮助用户实现数据的自动化采集、编辑以及规范化,降低工作成本。云采集是它的一大特色,相比其他采集软件,云采集能够做到更加精准、高效和大规模。

    自定义采集过程中,八爪鱼采集器系统自写的Xpath、自动生成的流程,可能无法满足数据采集需求。对数据质量要求高,则需自写Xpath,调成流程图等,以优化规则。

    使用自定义采集的同学,虽然八爪鱼操作简单,比较容易上手。但是,仍需对八爪鱼采集原理有所了解,看完相关教程,循序渐进,成长周期较长。

    可视化操作,无需编写代码,制作规则采集,适用于零编程基础的用户云采集是其主要功能,支持关机采集,并实现自动定时采集

    Conclusion:八爪鱼是一款适合小白用户尝试的采集软件,云功能强大,当然爬虫老手也能开拓它的高级功能。

    3.集搜客

    一款简单易用的网页信息抓取软件,能够抓取网页文字、图表、超链接等多种网页元素。同样可通过简单可视化流程进行采集,服务于任何对数据有采集需求的人群。

    可视化流程操作,与八爪鱼不同,集搜客的流程重在定义所抓取的数据和爬虫路线,八爪鱼的规则流程十分明确,由用户决定软件的每一步操作

    支持抓取在指数图表上悬浮显示的数据,还可以抓取手机网站上的数据

    会员可以互助抓取,提升采集效率,同时还有模板资源可以套用

    Conclusion:集搜客操作较简单,适用于初级用户,功能方面没有太大的特色,后续付费要求比较多。

    4.神箭手云爬虫

    一款新颖的云端在线智能爬虫/采集器,基于神箭手分布式云爬虫框架,帮助用户快速获取大量规范化的网页数据。

    直接接入代理IP,避免IP封锁

    自动登录验证码识别,网站自动完成验证码输入

    可在线生成图标,采集结果以丰富表格化形式展现本地化隐私保护,云端采集,可隐藏用户IP

    Conclusion: 神箭手类似一个爬虫系统框架,具体采集还需用户自写爬虫,需要代码基础。

    5.狂人采集器

    一套专业的网站内容采集软件,支持各类论坛的帖子和回复采集,网站和博客文章内容抓取,分论坛采集器、CMS采集器和博客采集器三类。

    支持对文章内容中的文字、链接批量替换和过滤可以同时向网站或论坛的多个版块一起批量发文具备采集或发帖任务完成后自动关机功能

    Conclusion: 专注论坛、博客文本内容的抓取,对于全网数据的采集通用性不高。

    注:给火车采集器的新手们一点学习建议

    火车采集器是一个非常专业的数据抓取和数据处理软件,对软件使用者有较高的技术要求, 使用者要有基本的HTML基础,能看得懂网页源码,网页结构。

    同时如果用到web发布或数据库发布,则对自己文章系统及数据存储结构要非常了解。

  • ?

    前嗅:手把手教你数据采集

    访文

    展开

    ForeSpider 前嗅:手把手教你数据采集

    ForeSpider是一款非常好用的数据采集软件,因为属于专业性工具,除了帮助文档外很少有使用教程。所有有很多人在使用的过程中遇到问题难以解决,今天给大家介绍ForeSpider数据采集系统的使用教程,希望能对大家的工作有所帮助。

    教程的示例网站是大众点评,要得到50页内所有医院名称,该医院评论总数,医院总体星级,各项评分,医院评论的用户名,评论内容,评论时间,用户点评星级,获赞数量和回应数量。

    首先我们先新建一个频道,我给它命名为大众点评,然后在频道配置里输入我们想要爬取数据的网址,需要在频道配置处输入想要得到数据的网址,大众点评需要开启cookie,从右面可以开启,网站不同有的不需要,视情况而定。 现在默认模板(1)就是我们要的网站页面,鼠标放在医院标题处如图,从左下角能看到医院的网址链接。

    现在点一下右上角的采集预览,我们能得到整个页面的所有网页链接,下拉滚动条到这个位置就会发现跟上图相同格式的链接,这就是我们需要的所有医院的链接。

    我们用不到的需要过滤一下,可以通过地址过滤和标题过滤方法筛选。点击软件右上角模板抽取配置里面的链接抽取,里面有地址过滤和标题过滤两个选项,点击地址过滤,软件右下角如图:

    过滤规则选择包含,过滤串内输入想要得到的医院链接,后面这串数字我们用“\d”表示,用“\e”表示结束,例如https://dianping/shop/\d\e,这样就能采集网页内所有这种格式的网页链接。

    当我们想要采集的网页下面有翻页的链接,就必须配置翻页。除了在右上角默认模板处抽取我们想要的得到的医院链接外,还要再新建一个链接抽取,抽取页面翻页的地址。

    我们继续从采集预览处得到翻页的链接,过滤规则选择包含,通过观察发现几个链接的相同点,输入到过滤串里就能得到想要的翻页链接了。

    第一层级的模板建好了,下面我们随便点进一个医院主页内,复制链接建立下一层级模板。在默认模板(2)的示例地址内输入医院主页的链接。

    因为我们需要采集该医院所有用户评论,所以我们找到下面的“更多点评”,通过刚刚地址过滤的方法,过滤出更多点评的链接,并建立模板(3),示例地址输入刚刚过滤的得到的“更多点评”的网址。

    注:点击链接抽取,看左下角关联模板处,一定要关联到下一层级的模板,如果是翻页的链接抽取,要关联自身模板,否则会数据采集失败。这点一定要注意。

    这样模板的基本配置就完成了,下一步是建立表单,下图是我们的需求,红色字体我们能从模板二采集到,蓝色字体我们能从模板三采集到,所以我们需要建立两个表单。

    点击表单配置,新建一个表单,添加一个网页主键如图,一定要勾选索引字段,键值唯一,主键字段三个选项,取值类型选择网页主键点击确定。

    然后添加下一个字段如标题“title”

    取值类型选择“选区内全部文本”,变量类型选择“string”,选择合适的字符长度点击确定。依次建立所有字段。

    这是我建立的两个表单的所有字段,表单名称分别为“大众点评1”、“大众点评2”,建立好以后点击保存即可。点开模板配置,每一个模板对应相应的表单,右键模板二“添加数据抽取”,表单名称选择“大众点评1”。

    同样在模板三处再添加另外一个数据抽取表单,添加好后如下图所示:

    单击“title”,然后按住ctrl键同时鼠标左键点击对应标题,内容过多的话按住shift可以调整内容大小,选好后点击保存。

    全部选取完后点击左上角的文件,然后全部保存。

    下一步点击数据,连接数据库,然后再次点击数据,选择数据表,选择刚刚新建两个数据表的字段后创建表,创建好后勾选并确定,就可以进行数据采集了(如果表单有问题需要更改,改好后需要重新创建表单),速度慢可以点击设置里面的线程设置,设置多线程。

    这只是一个简单的教程,软件还有很多强大的功能,祝大家使用愉快!

  • ?

    ForeSpider数据采集软件之链接抽取脚本

    Isabel

    展开

    ForeSpider数据采集软件之链接抽取脚本

    前嗅ForeSpider数据采集软件是一款通用性互联网数据采集软件,软件几乎可以采集互联网上所有公开的数据,通过可视化的操作流程,从建表、过滤、采集到入库一步到位。同时软件内置了强大的爬虫脚本语言。如果有通过可视化采集不到的内容,都可以通过简单几行代码,实现强大的脚本采集。

    很多用户说可视化的操作太简单,一定要看软件脚本的教程,所以今天给大家出一个爬虫脚本的链接抽取教程,满足用户更多的需求。

    案例使用的是大众点评网,要抽取下面的翻页链接。

    第一步先看每一页的链接地址有没有规律。

    可以看到每一页的链接地址只有最后一个数字是不一样的,分别是对应的页码数,我们可以通过拼接的方式得到所有翻页的链接地址。下面写了拼接第二页链接地址的脚本:

    第一行代码:定义一个url类的变量u

    第二行代码:u.urlname是网页的链接地址,为其赋值

    第三行代码:u.tmplid是这个链接抽取所要关联的模板id,这里是翻页,所以关联自身模板

    第四行代码:这个链接抽取所对应的频道id

    第五行代码:u.title是链接标题,为其赋值

    第六行代码:将所拼接的链接添加到最后的结果中

    上面只是解释每一行代码的作用,取到的只是第二页的链接,下面给大家放完整的内容:

    通过FindClass的方式,从源码中得到总页数,然后使用for循环拼接每一页的链接。一共才用了12行(其中还包含了两行注释)就得到了自己想要的链接,是不是非常的简单呢,希望大家多看帮助文档,很多问题在帮助文档里就有了答案(我也经常遇到不会的然后去看文档)。

    前嗅ForeSpider是一款非常简单好用的通用型数据采集软件,操作简单功能强大的同时还保证了采集速度,完全可以满足企业级用户需求。

  • ?

    APP数据采集是怎么实现的

    昌秋凌

    展开

    最近半年,我们八爪鱼陆续接到好几个APP数据采集的项目需求,我在群里面,偶尔也看到有些用户在问,有没有APP数据采集的工具。鉴于我们做过的几个APP数据采集项目的经验,我可以告诉大家,现在APP数据采集,市面上还没有通用的工具。我们八爪鱼内部是有一套工具,但由于使用的难度较高,需要编写脚本,所以不对普通用户公开,我们仅接受项目定制。

    虽然不对外公开,但并不妨碍我们将技术分享出来,APP数据采集,一般走以下两种方式:

    1.两种思路

    1. 抓包

    2. HOOK

    2.抓包

    有代码经验或APP开发的同学都很容易理解,其实很多APP,走的都是webservice通讯协议的方式,并且由于是公开数据,而且大部分是无加密的。所以只要对网络端口进行监测,对APP进行模拟操作,即可知道APP里面的数据是如何获取的。

    我们只需要写代码模拟请求,无论POST还是GET,即可得到该请求所返回的信息。再通过对返回的信息结构化解析,即可得到我们想要的数据。

    public static void main(String[] args) {

    Spider.create(new GithubRepoPageProcessor())

    //从https://github/****开始抓

    .addUrl("https://github/****")

    //设置Scheduler,使用Redis来管理URL队列

    .setScheduler(new RedisScheduler("localhost"))

    //设置Pipeline,将结果以json方式保存到文件

    .addPipeline(new JsonFilePipeline("D:\\data\\webmagic"))

    //开启5个线程同时执行

    .thread(5)

    //启动爬虫

    .run();

    }

    以模拟采集“meizu”应用市场为例

    应用市场产品

    抓包返回参数

    整个抓包过程

    3.HOOK技术

    HOOK技术是一种走操作系统内核的技术,由于安卓系统是开源的,所以可以借助一些框架修改内核,从而实现你要的功能。HOOK的形式,我们走的是Xposed框架。Xposed是一款可以在不修改任何其他开发者开发的应用(包括系统服务)的情况下,改变程序运行的一个开源框架服务。基于它可以制作出许多功能强大的模块,以此来达到应用程序按照你的意愿运行的目的。

    如果把安卓手机看做一座城堡,那Xposed可以让你拥有一个上帝视角,城里的运作细节尽收你眼底,还能让你插一手改变城堡的运作规律。

    什么意思呢?简单的说就是你可以通过他,自动化的控制你的APP。如果将我们的APP开在模拟器上,我们可以通过编码,通过他告诉APP这一步干什么,下一步干什么。你把它理解成类似游戏打怪外挂就可以了。

    而他每走一步,APP与服务端交互的数据,均可获取下来。这种方式广泛用于一些成熟的APP。比如某信采集。

    public class HookActivity implements IXposedHookLoadPackage {

    @Override

    public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {

    final String packageName = lpparam.packageName;

    XposedBridge.log("--------------------: " + packageName);

    try {

    XposedBridge.hookAllMethods

    (Activity.class, "onCreate", new XC_MethodHook() {

    @Override

    protected void afterHookedMethod(MethodHookParam param)

    throws Throwable {

    XposedBridge.log("=== Activity onCreate: " + param.thisObject);

    }

    });

    } catch (Throwable error) {

    XposedBridge.log("xxxxxxxxxxxx: " + error);

    }

    }

    }

    其实我们八爪鱼曾经也想开发一款通用的APP数据采集工具,并且两年前在这块投入研究了小半年,我们做出了一款APP采集脚本编辑工具,可以让一款APP的数据采集项目缩减到3-5天即可开发完成。但我们认为,这个工具需要编写脚本一般用户是比较难上手的,所以仅作为内部项目使用。

    以HOOK某APP为例:

    HOOK指令打开某

    4.这些年走过的坑

    聊完APP采集的思路,我们跟大家分享一些遇过的坑吧,让大家乐一乐

    坑一:签名算法

    以某信的文章列表页及某信息页为例,对其http访问进行抓包,会发现其url的一个核心参数是我们无法知道如何生成的,这就导致,我们不可能直接用该url进行信息爬取;签名算法如果无法破解,HTTP这条路就是死路了。

    坑二:http爬取回来的信息和页面显示不一致

    以某信的某信息页为例,对比直接访问某信页面及http爬取的信息,可明显发现http爬取到的信息较少。造成得两种方式都用,才能既照顾速度又照顾完整性。

    坑三:模拟器中的坑

    APP自动识别你的运行环境进行屏蔽,最厉害的还是某信,连你是用模拟器打开还是真机打开,是什么内核的,全部进行限制。曾经见过牛人,找某手机厂商专门定做真机来配合。

    坑四:帐号的坑

    这个坑就有点大了,要找号、养号,都不是件容易的事情,更惨的是封号,真真让你一夜回到解放前。

  • ?

    使用curl技术实现数据采集

    虹儿

    展开

    前提:

    比如在php.ini中,开启curl模块:

    基本步骤:

    l 1、初始化CURL请求:$link = curl_init([网址url]);

    l 2、设置请求选项:curl_setopt($link, 选项名, 选项值)。常用选项如下:

    基本含义是:将该$link的某项,设置为某个值;

    其中请求头通常是必不可少的信息;

    比如:

    curl_setopt($link, CURLOPT_URL, ‘http地址’);

    curl_setopt($link, CURLOPT_HEADER, true);

    l 3、执行请求并返回结果:$result = curl_exec($link)

    l 4、关闭CURL请求:curl_close($link)

    代码如下:

    得到的$result结果如下所示:

  • ?

    用友财务软件数据采集及凭证输出步骤和代码

    仲半梦

    展开

    用友财务软件数据采集及凭证输出步骤和代码

    适用于各种用友财务软件,SQL2008/2000等等

    方法/步骤

    第一步:账套备份

    1.找到用友的系统管理,打开

    2.用admin登录,步骤:注册—登录名:admin 密码通常为空

    3.账套—备份,可以先在D盘下新建一个文件夹“***备份”,如果在桌面创建文件夹,在备份时选择文件夹的时候会吐血~~因为没有“桌面”这个选项!

    4.备份之后打开“***备份”文件夹,发现里面有两个文件,UF2KAct.Lst和UFDATA.BA_,前面的不用管,后面的是个备份压缩文件,需要解压缩。在用友的安装目录下/admin/中有个ufuncomp.exe文件,这个就是解压缩 UFDATA.BA_的,我通常都是直接搜索 ufuncomp,找到 ufuncomp.exe,双击,下面是解压缩为把其中的 UFDATA.BA_直接改为 UFDATA.BAK~~

    5.把 “***备份”文件夹拷到自己的U盘中。

    登录SQL,数据库右键“还原数据库”,源设备—添加— UFDATA.BAK—还原前面打勾,目标数据库—选择相应的数据库名称—确定,等啊等啊等,还原成功!^_^

    其实还有一种方法,是先新建数据库,然后在还原到这个数据库里,这种方法经常会出现一些问题,一会这样,一会那样,还是上面的方法省心!

    依次运行以下代码:(只有第二步有不同,其他都是一样的)

    --科目代码表

    -(1)查看不同的科目代码长度

    select distinct LEN(ccode) from code

    -(2)整理代码名称(这是根据 1、查看不同的科目代码长度结果来写的)

    如科目代码长度有4、6、8、10、12则:

    select km.ccode 科目代码,科目全称=k1.ccode_name+

    case when len(km.ccode)>4 then '--'+k2.ccode_name else '' end

    +case when len(km.ccode)>6 then '--'+k3.ccode_name else '' end

    +case when len(km.ccode)>8 then '--'+k4.ccode_name else '' end

    +case when len(km.ccode)>10 then '--'+k5.ccode_name else '' end

    into 科目代码表

    from code km

    join code k1 on left(km.ccode,4)=k1.ccode

    join code k2 on left(km.ccode,6)=k2.ccode

    join code k3 on left(km.ccode,8)=k3.ccode

    join code k4 on left(km.ccode,10)=k4.ccode

    join code k5 on left(km.ccode,12)=k5.ccode

    order by 1

    --(3)凭证表

    select iperiod 月份,ino_id 凭证号,cdigest 摘要,a.ccode 科目代码,

    科目全称,金额=case when md<>0 then md else mc end,

    借贷方向=case when md=0 then '贷' else '借' end

    from gl_accvouch a join 科目代码表 b

    on a.ccode=b.科目代码

    order by 1,2

    --(4)余额表

    select iperiod 会计期间,ccode 科目代码,科目全称,cbegind_c 期初方向,mb 期初金额,md 借方发生额,

    mc 贷方发生额,cendd_c 期末方向,me 期末余额

    from GL_accsum a join 科目代码表 b

    on a.ccode=b.科目代码

    order by 2,1

    4

    把运行结果“连同标题一起复制”到EXCEL中即可

数据采集代码

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP