nodejs爬虫实践 - 代码安装检测小工具

项目背景

在互联网广告业务中,追踪转化和数据统计是流量变现不可缺少的一环。一个成熟的广告投放平台,应该有一套完善的数据追踪和推广监测功能。为了追踪到那些页面上的数据转化,就需要在被投放的页面中添加一些代码,以追踪上报那些页面上的点击、表单提交、跳转等操作。如何指导广告主正确地安装我们的代码,激活对应的各类事件的上报统计,也引入了不少的沟通成本。在初期试运行阶段,许多广告主因为填错了转化ID或者因为代码的拼写错误,导致无法实现预期的转化上报,并且需要运营和技术支持甚至技术的介入,才能查明这些简单的安装错误。在多方的呼吁下,代码安装自动化检测工具就这样出炉了。

系统设计

代码安装自动化的检测工具需要做的是,根据用户提供内容,返回判定结果。为了能够简化用户操作,我做的这版小工具只需要用户提供页面的URL。所填的URL应是外网可以访问的,也就是可以爬取到页面的内容。而爬取和分析页面,交给node中间层去处理,无需后台的参与。之后node端将检测结果返回,并在前台渲染。其中需要注意的是,有可能广告主提供的页面的html中,并不存在转化代码,需要逐层爬取所引用的js文件, 才可能找到对应的转化事件。

用户输入页面地址URL,前台将用户的配置信息(转化跟踪id, 所选择的上报事件等)以及URL,放在一个请求里,发送给nodejs。nodejs收到URL之后爬取页面,判断转化代码是否存在,转化ID是否正确,代码位置,以及所有转化事件是否安装完全。如果首层爬取的页面并没有通过验证,则爬取引用页面的内容。因为广告主所投放的落地页相对比较简单,此处的设计是只爬取到二级页面。并且需要注意的是,因为我们将上报的自主权赋予了广告主,所以此检测工具只在字面层上检测代码是否安装完整,不具备代码运行逻辑的判断。比如,如果广告主讲代码填写在了 if (false) {转化代码} 这样的位置,我们的检测也会通过。

在这里插入图片描述

代码实现

首先,需要先判别所填入链接的协议类型,然后采用对应的协议方法,来爬取整个HTML document的内容。如果能够成功读取整个页面的内容,就可以把获取到的HTML DOCUMENT。随后,HTML DOCUMENT会传入installedCheckingProcess函数中做进一步的解析判断。

import httpCheck from 'http';
import httpsCheck from 'https';
import cheerio from 'cheerio';
import URL from 'url';

const options = URL.parse(URLforChecking);
  options.rejectUnauthorized = false;

  const webCrawling = () => (
    new Promise((resolve
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值