中企动力 > 商学院 > 同步数据采集
  • ?

    数据采集接口网关

    Yale

    展开

    FC-Gateway数据采集接口网关是北京华恒信远专门为工业标准通讯接口OPC Server软件、数据采集接口软件配套定制开发的一款嵌入式硬件产品,内置两个标准RS-232串口(其中一个串口可以通过跳线设置成RS-485)和两个RJ45以太网口,型号为Gateway-227B, 此外,还有Gateway-240B、Gateway-230B等嵌入式工控机型号。 该设备操作系统有Windows、Linux两种,其功能与特点如下: 1、OPC服务器:可连接DCS、PLC等控制系统,读写实时数据,包装成OPC Server工业标准通讯接口,提供给实时数据库系统、先进控制系统和MES系统集成商; 2、安全隔离:当数据采集接口网关为实时数据库系统提供实时数据时,它一般位于自动化控制系统和实时数据库服务器之间,由于数据采集接口网关采用了内置单向数据传输技术,可达到自动化控制系统和实时数据库服务器之间的安全隔离目的。 3、该产品操作系统、数据采集程序等均固化,不可修改。一旦被修改,重新启动后,自动恢复到初始状态,可防止病毒以及黑客软件攻击。 4、结构先进、安装方便,该产品高度1U,可以直接安装在标准机柜中,独特的散热技术,1U机箱有多个磁悬浮风扇散热。 5、数据采集冗余设计:支持双机双网冗余通讯。 6、可作为InfoPlus.21、PI、PHD等实时数据库系统的数据采集终端,也可写数据至关系数据库,为MIS、ERP等管理信息系统提供生产实时数据。

  • ?

    一种你不知道的技术,轻松与HIS系统数据对接

    匪兵甲

    展开

    随着医院信息化的发展以及“互联网+医疗”行动计划的推进,实现医院各部门、科室之间,医疗机构之间不同系统数据的互联互通,消除医疗“数据孤岛”,建立临床数据中心CDR、远程医疗平台、互联网医疗平台等医疗大数据应用中心,是大势所趋。

    而HIS系统作为覆盖医院所有业务和业务全过程的信息管理系统,是医院最基础、最重要的系统。HIS系统数据正是医疗大数据应用的基础,若不能实现与HIS系统的数据交互,医疗大数据应用就如“无源之水”。

    绕不开与HIS系统做对接,但对接方法,除了数据接口,还有别的方式。最具代表性的就是HIS数据采集工具,因为它不需要HIS系统软件厂商配合,就能采集HIS数据,建立数据输出通道。从而,很好的避免大量协调工作以及因厂商不愿配合而导致的对接难题。

    HIS数据采集工具特点

    ①高兼容性:可以采集不同软件厂商的各种HIS系统数据。

    ②数据直接采集:不需要HIS系统厂商配合。

    ③非侵入性:数据采集与HIS系统数据库无关,对于加密数据库数据也可以采集。

    应用场景

    远程医疗平台——采集HIS系统的患者基本信息、病历病程等信息,存储至远程医疗平台数据库,为远程医疗数据调用提供数据源。

    互联网医疗平台——与足够多的医院建立合作关系,且实现平台和医院临床数据的互联互通,是互联网医疗进行远程“重问诊”的前提,HIS数据采集工具,可以更方便、快捷的达成。

    健康险精准核保——获得被保险人的诊疗信息,健康医疗保险才能精准核保与快速理赔。HIS数据采集工具,为核保系统与合作医院HIS系统的互联互通,提供了快捷通道。

    医疗APP/医院微信公众平台——医院移动端为患者提供预约挂号、报告查询、费用查询、处方查询等服务,需要与HIS系统进行数据交互。通过数据采集工具,采集医生排班、检查报告等字段新增信息,同步至APP或医院微信公众平台,由此降低患者就医时间成本。

    院内其他系统——医院PACS、SPD、EMR、辅助诊断等系统都需要与HIS进行数据交互,以减少工作人员重复操作。HIS数据采集工具,为系统间数据交互提供了一种更为易操作的方式。

  • ?

    携程用户数据采集与分析系统

    柳慕晴

    展开

    一、携程实时用户数据采集系统设计实践

    随着移动互联网的兴起,特别是近年来,智能手机、pad等移动设备凭借便捷、高效的特点风靡全球,同时各类APP的快速发展进一步降低了移动互联网的接入门槛,越来越多的网民开始从传统PC转移至移动终端上。但传统的基于PC网站和访问日志的用户数据采集系统已经无法满足实时分析用户行为、实时统计流量属性和基于位置服务(LBS)等方面的需求。

    我们针对传统用户数据采集系统在实时性、吞吐量、终端覆盖率等方面的不足,分析了在移动互联网流量剧增的背景下,用户数据采集系统的需求,研究在多种访问终端和多种网络类型的场景下,用户数据实时、高效采集的方法,并在此基础上设计和实现实时、有序和健壮的用户数据采集系统。此系统基于Java NIO网络通信框架(Netty)和分布式消息队列(Kafka)存储框架实现,其具有实时性、高吞吐、通用性好等优点。

    1、技术选型和设计方案:

    一个典型的数据采集分析统计平台,对数据的处理,主要由如下五个步骤组成:

    图1、数据平台处理流程

    其中,数据采集步骤是最核心的问题,数据采集是否丰富、准确和实时,都直接影响整个数据分析平台的应用的效果。本论文关注的步骤主要在数据采集、数据传输和数据建模存储这三部分。

    为满足数据采集服务实时、高效性、高吞吐量和安全性等方面的要求,同时能借鉴互联网大数据行业一些优秀开源的解决方案,所以整个系统都将基于Java技术栈进行设计和实现。整个数据采集分析平台系统架构如下图所示:

    图2(数据采集分析平台系统架构)

    其中整个平台系统主要包括以上五部分:客户端数据采集SDK以Http(s)/Tcp/Udp协议根据不同的网络环境按一定策略将数据发送到Mechanic(UBT-Collector)服务器。服务器对采集的数据进行一系列处理之后将数据异步写入Hermes(Kafka)分布式消息队列系统。为了关联业务服务端用户业务操作埋点、日志,业务服务器需要获取由客户端SDK统一生成的用户标识(C-GUID),然后业务服务器将用户业务操作埋点、日志信息以异步方式写入Hermes(Kafka)队列。最后数据消费分析平台,都从Hermes(Kafka)中消费采集数据,进行数据实时或者离线分析。其中Mechanic(UBT-Collector)系统还包括对采集数据和自身系统的监控,这些监控信息先写入Hbase集群,然后通过Dashboard界面进行实时监控。

    (1)基于NIO的Netty网络框架方案

    要满足前面提到的高吞吐、高并发和多协议支持等方面的要求。我们调研了几种开源异步IO网络服务组件(如Netty、MINI、xSocket),用它们和NginxWeb服务器进行了性能对比,决定采用Netty作为采集服务网络组件。下面对它进行一些概要介绍:Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。

    图3(Netty框架内部组件逻辑结构)

    Netty的优点有:

    a、功能丰富,内置了多种数据编解码功能、支持多种网络协议。

    b、高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳。

    c、可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。

    d、易用性,API使用简单。

    e、经过了许多商业应用的考验,在互联网、网络游戏、大数据、电信软件等众多行业得到成功商用。

    Netty采用了典型的三层网络架构进行设计,逻辑架构图如下:

    图4(Netty三层网络逻辑架构)

    第一层:Reactor通信调度层。该层的主要职责就是监听网络的连接和读写操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,再由Pipeline充当的职责链来进行后续的处理。

    第二层:职责链Pipeline层。负责事件在职责链中有序的向前(后)传播,同时负责动态的编排职责链。Pipeline可以选择监听和处理自己关心的事件。

    第三层:业务逻辑处理层,一般可分为两类:a. 纯粹的业务逻辑处理,例如日志、订单处理。b. 应用层协议管理,例如HTTP(S)协议、FTP协议等。

    我们都知道影响网络服务通信性能的主要因素有:网络I/O模型、线程(进程)调度模型和数据序列化方式。

    在网络I/O模型方面,Netty采用基于非阻塞I/O的实现,底层依赖的是JDKNIO框架的Selector。

    在线程调度模型方面,Netty采用Reactor线程模型。常用的Reactor线程模型有三种,分别是:

    a、Reactor单线程模型:Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。对于一些小容量应用场景,可以使用单线程模型。

    b、Reactor多线程模型:Rector多线程模型与单线程模型最大的区别就是有一组NIO线程处理I/O操作。主要用于高并发、大业务量场景。

    c、主从Reactor多线程模型:主从Reactor线程模型的特点是服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。利用主从NIO线程模型,可以解决一个服务端监听线程无法有效处理所有客户端连接的性能不足问题。Netty线程模型并非固定不变的,它可以支持三种Reactor线程模型。

    在数据序列化方面,影响序列化性能的主要因素有:

    a、序列化后的码流大小(网络带宽占用)。

    b、序列化和反序列化操作的性能(CPU资源占用)。

    c、并发调用时的性能表现:稳定性、线性增长等。

    Netty默认提供了对GoogleProtobuf二进制序列化框架的支持,但通过扩展Netty的编解码接口,可以实现其它的高性能序列化框架,例如Avro、Thrift的压缩二进制编解码框架。

    通过对Netty网络框架的分析研究以及对比测试(见后面的可行性分析测试报告)可判断,基于Netty的数据采集方案能解决高数据吞吐量和数据实时收集的难点。

    》》点击阅读全文

  • ?

    使用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结果如下所示:

  • ?

    数据采集过程中的常见问题

    新竹

    展开

    经过两周的整理总结,沉淀出来好多数据采集的经验与大家分享。

    前嗅免费模板共享链接:http://forenose/help/collection/template/cases.html

    1.如何进行数据采集?

    ①下载安装软件后,登录到软件上。

    ②准备好模板:在前嗅的官网上下载免费的模板或自己配置好的模板

    ③将下载的官网导入到软件中。

    点击文件---点击导入采集文件(将采集文件导入,自己配置的模板请忽略这一步)

    ④在数据建表中建关联数据表

    选中需要采集模板下的表单---点击创建关联数据表,所创表名不能为汉字,点击确定---在所创数据表前的方框打勾即可关联数据表。详情见下图。

    此时在数据浏览中就存在了刚刚建的关联数据表。

    ⑤进行数据采集。

    在需要进行数据采集的模板前打勾--点击允许采集--点击开始按钮即可进行数据采集。详情见下图。

    ⑥数据预览及导出

    选中关联表---点击刷新按钮即可查看数据---点击导出按钮即可导出数据。详情见下图。

    多种导出方式:

    a.可以将采集到的数据全部导出。

    b.可以将数据分割导出,设置特定数目后数据会分别储存放在文件夹中。

    c.可以将每个字段所采集到的内容分别导出到不同文件夹,方便查看。

    数据导出教程:

    http://forenose/help/guildbook/crawler_new/5-2.html

    2.所采集的网站弹验证码是怎么回事?

    弹验证码分为四种情况:

    ①登录需要验证码:登录时只需要一个验证码,所以直接手动填写配置即可。

    ②多账号登录:每次账号登录都需要验证码,此时应该接第三方打码平台。

    前嗅(forenose)是首个深度大数据专家。

    提供数据采集-分析-处理-管理-营销-应用,自主知识产权的全套大数据产品 。

  • ?

    工业互联网中的数据采集与控制技术

    凉生

    展开

    工业互联网是在传统互联网的基础上建立起来的。这种演化是工业技术发展的必然趋势。传统互联网将人与人通过计算机网络连接在一起,分享各种信息,传递各种需求,获得各种服务,这是人类社会、经济、科技发展的巨大进步。但是,这种连接的能力还是非常有限的。因为如果只有人而没有机器的参与,我们应用互联网的空间不是完整的。只有当全球70多亿人口和600亿台左右的机器都能够连接在一起的时候,互联网的价值才能得到最大程度的彰显,人类社会才能完全从体力和脑力劳动中彻底解放出来。我们今天已经步入了“复杂的工作要用最简单的方法来处理”的时代。这就是工业互联网技术发展的原动力,发展的趋势不可逆转。在传统互联网的基础上,影响这项技术发展速度的一个重要因素是机器侧的数据采集和云控制技术问题。事实上,这就是自动化技术与信息化技术深度融合的问题。这个问题处理好了,工业互联网的发展就会更顺利一些。机器的连接只是手段,能对机器的有效管控才是工业互联网发展的重要目的。

    工业互联网

    目前,数据采集技术主要受到两个方面的制约。一是部分机器没有数据接口,二是存在大量异构的通讯规范。与此同时,我们还要考虑到工业发展的惯性,不能完全采用新旧技术彻底更替的办法来解决这两方面的问题。所以,工业社会必须要有这样的技术,在没有数据接口的机器上能够增加数据接口(包括传感器),在异构通讯规范之间采用全兼容的数据采集技术。通用网关是提供这种全兼容技术的产品。在工业互联网技术体系中,通用网关属于边缘计算的一部分。这是与传统互联网明显不同的地方。每一种通讯协议都对应着通用网关中的一种通讯驱动。一项新的技术是把通讯数据包交给通用网关中边缘计算来处理,以便分解出有效的信息来。这将极大地降低通用网关的通讯处理开发成本,提高通用网关数据采集的灵活性。边缘计算的另一个用途当然是对采集来的数据进行必要的处理,以减轻云平台的计算压力。同时,多个边缘计算构成的雾计算,也是工业互联网的重要组成部分。雾计算的加入,可极大地提升工业互联网的分布计算能力。考虑到互联网通讯的不确定性,还需要在通用网关中增加断网续传的功能,以保持数据的完整性。除此之外,我们还需要关注数据的实时性和同步性问题。这些特性一般能够通过调整通讯的请求周期和标记数据的时间戳来确定。显而易见,通用网关是数据采集的重要设备,它在整个工业互联网中构成了一个庞大的通讯节点系统,对于整个工业互联网的运行有着非常重要的影响。为此,我们需要一种有效的网络工具,用于管理这样的通讯节点系统,对它们的运行状态,采集数据更新,采集周期等状态进行监控,同时也能对相应的软件维护、节点参数、接口配置等进行动态的调整。

    数据采集

    云控制是工业互联网很重要的一项功能。但是,目前工业互联网的关注点主要集中在数据的处理和信息的管理方面。事实上,由于工业互联网中云平台能够综合更多的数据,因此它不仅可以对企业的管理过程提供重要的决策,而且可以对机器的控制过程提供更优的指令。云机器人和能源互联网都属于云控制的典型的应用。人工智能的技术需要强大的计算资源的支持,而这只有在云计算环境中才能得到满足。只有当强大的云控制功能和强大的数据采集功能结合在一起的时候,工业互联网才能具有真正强大的支配机器的能力。一般情况下,工业互联网的云平台是按照PaaS架构进行设计的。云控制可利用这方面的计算资源,进行智能控制、资源调度、优化决策,以及多个生产过程的协同作业等方面的计算处理,从而为机器的先进控制提供最优的设定值。云控制需要解决的关键技术问题是:互联网通讯的不确定性造成的数据通讯延迟补偿,如何让复杂算法的编辑、编译和基于工业互联网的动态调试过程变得更加简单和直观。工业APP提供的可视化能力,也为云控制技术的工程应用提供了有力支撑。另外,云控制需要边缘计算的协同。边缘计算一方面为云控制提供数据通讯的通道,一方面也为云控制过程提供安全保障。随着工业互联网技术的快速发展,云控制将逐步成为工业领域中最重要的一种生产技术。

    控制技术

    工业互联网是生产企业控制与管理深度融合的重要技术设施。数据采集和控制是工业互联网连接机器社会的重要手段。数据采集和云控制技术的研究与应用,将有效消除人们对工业互联网发展的质疑,并产生积极的促进作用。

  • ?

    亿信华辰数据采集平台i@Report这样抓取数据

    於靖儿

    展开

    数据抓取方案是从指定网址上抓取数据,存储到用户使用的i@Report产品中。对于数据抓取的创建,使用者需要了解其基本的功能使用。跟着小亿的介绍,一起来了解一下。

    数据抓取方案

    系统会自动生成一个dadmin帐号(默认密码dadmin),使用该帐号登录系统,可以看到数据抓取模块,该用户的权限已经初始化完成。

    创建抓取方案,需要进行抓取的相关设置。

    基本属性设置

    【抓取地址】抓取的目标网址。

    【关键字】目标表格的表头文字、表格里面的文字(协助定位表格的文字),支持多个关键字定位,关键字之间的分割符可以设置为空格,英文的分号、逗号。

    【方案名称】抓取方案的名称。如果不填写,点击“测试”,会默认取抓取目标网址的标题。

    【数据起始行】标志数据起始的行号,行号之前的会被识别为表头,行号及之后的数据被识别为数据。

    基本配置完成之后,点击"测试"按钮,会根据默认的抓取规则,从目标地址中将

    标签的内容抓取出来重新渲染。

    高级属性设置

    【表格ID】数据所在表格DOM元素的id属性值。在网页上的表格无明显关键字或者有多个同样标题的表格时,可以考虑取表格的ID来定位表格。

    【表格名称】用途与表格ID一致,对应DOM对象的name属性。

    【分页参数】在目标网站支持分页,且数据有多页的情况下,可以设置分页参数,这里指参数名。

    例如:

    http://192.168.1.200/bbs//forumdisplay.php?fid=30&page=2 该地址的分页参数就是page。

    【页码起止】配置抓取的起止码,从第几页抓到第几页,可以只填写分页起始行,不填写截止行。

    【取数去重】设置是否去除重复数据。勾选后将不再抓取重复的数据到数据库,数据是否重复的范围是所有期的数据中去比较是否有重复,默认不去重。

    登录属性设置

    以BI的登录地址为例

    【登录地址】执行登录的地址。

    【用户名参数】用户名对应的参数名。

    【用户名】用户的ID。

    【密码参数】用户密码的参数名。

    【密码】用户的密码。

    【登出地址】执行登出的地址。

    执行属性设置

    【取数频率】执行数据抓取的频率设置。

    【启动】是否启动自动抓取。

    根据实际需要配置完成后,点击“保存”,可以将当前配置保存,并生成对应的抓取方案。一个方案会同步生成一个irpt的任务和一个计划任务,任务保存在数据抓取任务组,计划任务保存到数据抓取分组。

    保存完成后,会提示是否执行数据抓取,点击“确认”可以执行一次数据抓取,也可以在树形抓取方案上,右键"执行"来执行抓取。

    编辑抓取方案

    点击左树上的方案配置,可以查看抓取方案的配置,

    可以对执行设置等配置进行编辑,其中目标地址、关键字、表格id、表格名称无法编辑。

    查看抓取数据

    点击左树抓取方案下的"数据"节点,可以查看抓取到的数据,

    抓取一次将生成一期数据,数据只能查看,不能编辑。数据由2张表组成,一张基本表,一张数据表,基本表记录抓取的一些基本信息。

    查看日志

    点击左树抓取方案下的"日志"节点,可以查看抓取数据的日志信息。

  • ?

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

    坑四:帐号的坑

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

  • ?

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

    干采蓝

    展开

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 同步数据采集