技术营销人员的网络搜集用例

从技术营销人员的角度来看,抓取和自动化库非常重要。 这是Node JS中两个最广泛使用的Web抓取库的简介。

当我与开发人员交谈时,他们总是觉得我喜欢网页抓取很奇怪。 这主要是由于两个原因:

与API相比,抓取是一种不稳定且不可靠的解决方案,用于从数据源中提取数据。

*就代码而言,构建刮板意味着编写不一定符合某些最佳实践(例如可重用性)的代码。 该代码通常与特定用例密切相关。

但是,关键是,当营销人员开始学习代码时,立即想到大量的用例。 营销人员梦dream以求的能够实现自动化的大部分工作都无法通过官方API来完成。

摆脱一些从Web提取信息的手动工作非常诱人。 我认为对于营销人员来说,抓取和自动化是编码技能的最常见用例。

最近,我有机会与Puppeteer和Cheerio合作,并在两者之间进行切换,因此这是营销人员对何时使用它们的看法。

木偶戏

Puppeteer是Google开发的Node开源库。 基本上,这是一种通过Node启动浏览器并在Chrome上自动执行操作的方法。

Puppeteer的主要用例是自动化。

抓取数据并不总是那么简单。 以我的Product Hunt刮板Hunt为例

在“产品搜寻”中,首次加载页面时,页面的HTML中不容易提供升级人信息。 在访问完整的提交者列表之前,您必须:

单击升级程序面板,一直滚动到列表末尾

为此,您需要一个可以在浏览器中自动执行操作的工具-这就是操纵up的目的。 需要登录获取数据或需要在浏览器中执行自动操作时,请使用Puppeteer。

切里奥

Cheerio是另一个NPM库,也称为“ JQuery for Node”。 它使您可以使用轻便,简单和快速的框架来抓取数据。 如果您熟悉,Cheerio可以处理输入到其中的原始HTML数据,类似于Python的Beautiful Soup。 这意味着,如果可以从URL中提取需要解析的数据,则在Cheerio中使用它非常简单。

以下是可用于从Twitter提取有关用户列表的信息的代码(通过twitter标记)。

const axios = require ( "axios" );
const cheerio = require ( "cheerio" );

//This function uses axios to get the html data on a given url it's also possible to do the same using the fetch method
const getHtml = async url => {
  link = await axios.get(url);
  return link.data;
};

//this is a node module that uses the above function and Cheerio to extract twitter data from a list of user tag (used in the backend of Hunt)

module .exports = async function run ( userList )  {
  const enrichedUsers = [];

  for (user of productHuntUserList) {
    try {
      const $ = cheerio.load( await getHtml( `https://twitter.com/ ${user.tag} ` ));

// here we extract the relevant information from each twitter page - followers number, description, and Twitter URL

      let followers = $(
        ".ProfileNav-item.ProfileNav-item--followers > a > span.ProfileNav-value"
      ).text();
      const description = $( ".ProfileHeaderCard-bio" ).text();
      const url = `https://twitter.com/ ${user.tag} ` ;

      // create a user object with existing info and the new info we've extracted from twitter
      const enrichedUser = {
        tag : user.tag,
        name : user.name,
        profile : user.profile,
        twitterDescription : description,
        twitterFollowers : followers,
        pageUrl : url,
        messagedAndFollowed : false
      };
      enrichedUsers.push(enrichedUser); // push the new user object into the enrichedUsers array
    } catch (e) {
      continue ; // this is not a good way to handle errors, but I didn't want to get into error handling here and it works for the sake of this tutorial.
    }
  }
  return enrichedUsers;
};

切里奥VS木偶

这两个库有不同的用例,但通常似乎是JS抓取的两个主要选项。 如果必须选择,我可以辩称,如果不需要Puppeteer的自动化功能,则使用Cheerio会更高效,更好地实践。

在研究Hunt时,我构建了2个Scrapers –一个用于Product Hunt,另一个用于Twitter。 我最初都是使用Puppeteer构建的,当尝试从Twitter抓取大量用户(包括Heroku服务器上的内存错误)时,我注意到了很多性能问题– Puppeteer花了大约10分钟的时间才完成了对1000名支持者的抓取。 然后,我重写了Cheerio中的Twitter机器人(如上所述),发现性能提高了大约5倍以上:新代码花费了大约2分钟(或更短的时间)来完成抓取。

摘要

两种工具都允许您以营销人员通常归因于Python的方式将节点用于自动化和抓取。 这些工具是另一个示例,说明学习Javascript可能会遇到很多麻烦,但最终可以为您提供更深入和全面的Web开发知识。

作为营销人员,您可能会想到多种使用这两种方法的方法,建议您这样做。 如果您正在学习新知识,那么不妨创建一些有用的东西!

From: https://hackernoon.com/automation-vs-scraping-cheerio-and-puppeteer-for-marketers-qjg330mg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值