教程:node爬取数据实例:抓取宝可梦图鉴并生成Excel文件

优采云 发布时间: 2022-09-23 11:16

  教程:node爬取数据实例:抓取宝可梦图鉴并生成Excel文件

  如何使用Node爬取网页数据并写入Excel文件?下面的文章文章用一个例子来说明使用Node.js爬取网页数据并生成Excel文件的方法,希望对大家有所帮助!

  相信口袋妖怪是很多90后的童年记忆。作为一个程序员,我想不止一次地制作一个口袋妖怪游戏,但在做之前,我应该先整理一下口袋妖怪有多少个,它们的编号、名称、属性等信息都整理好了。本期将使用Node.js简单实现对神奇宝贝网页数据的抓取,将数据生成Excel文件,直到接口读取Excel访问数据。

  抓取数据

  既然是爬取数据,我们先找一个有宝可梦插画数据的网页,如下图:

  这个网站是用PHP写的,前后没有分离,所以我们不会读取接口抓取数据,我们使用爬虫库抓取网页中的元素来获取数据。提前说明一下,使用爬虫库的好处是可以在 Node 环境中使用 jQuery 来抓取元素。

  安装:

  yarn add crawler

  实施:

  const Crawler = require("crawler");

const fs = require("fs")

const { resolve } = require("path")

let crawler = new Crawler({

timeout: 10000,

jQuery: true,

});

let crawler = new Crawler({

timeout: 10000,

jQuery: true,

});

function getPokemon() {

let uri = "" // 宝可梦图鉴地址

let data = []

return new Promise((resolve, reject) => {

crawler.queue({

uri,

callback: (err, res, done) => {

if (err) reject(err);

let $ = res.$;

try {

let $tr = $(".roundy.eplist tr");

$tr.each((i, el) => {

let $td = $(el).find("td");

let _code = $td.eq(1).text().split("\n")[0]

let _name = $td.eq(3).text().split("\n")[0]

<p>

let _attr = $td.eq(4).text().split("\n")[0]

let _other = $td.eq(5).text().split("\n")[0]

_attr = _other.indexOf("属性") != -1 ? _attr : `${_attr}+${_other}`

if (_code) {

data.push([_code, _name, _attr])

}

})

done();

resolve(data)

} catch (err) {

done()

reject(err)

}

}

})

})

}</p>

  在生成实例的时候,还需要开启jQuery模式,然后可以使用$符号。上述代码中间部分的业务是抓取元素爬取网页所需的数据,与jQuery API相同,这里不再赘述。

  getPokemon().then(async data => {

console.log(data)

})

  最后,我们可以执行并打印传递过来的data数据,验证格式是否真的被爬取了,没有错误。

  写入 Excel

  由于刚才已经爬取了数据,接下来我们使用node-xlsx库来完成数据的写入,生成一个Excel文件。

  首先介绍一下node-xlsx是一个简单的excel文件解析器和*敏*感*词*。 TS构建的依赖SheetJS xlsx模块解析/构建excel工作表,所以在一些参数配置上,两者可以通用。

  安装:

  yarn add node-xlsx

  实施:

  const xlsx = require("node-xlsx")

getPokemon().then(async data => {

let title = ["编号", "宝可梦", "属性"]

let list = [{

name: "关都",

data: [

title,

...data

]

<p>

}];

const sheetOptions = { &#39;!cols&#39;: [{ wch: 15 }, { wch: 20 }, { wch: 20 }] };

const buffer = await xlsx.build(list, { sheetOptions })

try {

await fs.writeFileSync(resolve(__dirname, "data/pokemon.xlsx"), buffer, "utf8")

} catch (error) { }

})</p>

  名称为Excel文件中的列名,数据类型为数组。它还需要传入一个数组,形成一个二维数组,意思是对从ABCDE....列传入的文本进行排序。同时可以通过!cols设置列宽。第一个对象 wch:10 表示第一列的宽度为 10 个字符,可以设置的参数很多。可以参考学习这些配置项。

  最后我们使用 xlsx.build 方法生成缓冲区数据,最后使用 fs.writeFileSync 写入或创建 Excel 文件。为了方便查看,我把它保存在一个名为data的文件夹中。这时候,我们会在data文件夹中找到一个名为pokemon.xlsx的额外文件,打开它,数据还在,这样就完成了将数据写入Excel的操作。

  读取 Excel

  其实不用写fs就可以读取Excel,直接用xlsx.parse方法传入文件地址就可以读取了。

  xlsx.parse(resolve(__dirname, "data/pokemon.xlsx"));

  当然,为了验证准确性,我们直接写了一个接口,看看能不能访问数据。为方便起见,我使用 express 框架直接执行此操作。

  我们先安装吧:

  yarn add express

  然后,创建快递服务。我在这里使用 3000 作为端口号。只需编写一个 GET 请求即可发送从 Excel 文件读取的数据。

  const express = require("express")

const app = express();

const listenPort = 3000;

app.get("/pokemon",(req,res)=>{

let data = xlsx.parse(resolve(__dirname, "data/pokemon.xlsx"));

res.send(data)

})

app.listen(listenPort, () => {

console.log(`Server running at http://localhost:${listenPort}/`)

})

  最后我用postman来访问这里的界面,你可以清楚的看到我们已经收到了所有的宝可梦数据,从爬取到存入表格。

  结论

  如您所见,本文以神奇宝贝为例,学习如何使用Node.js从网页抓取数据,如何将数据写入Excel文件,以及如何从Excel文件中读取数据。这个问题,其实实现起来并不难,但有时还是挺实用的。怕忘记的可以存起来哦~

  更多node相关知识请访问:nodejs教程!

  PHP入门就业在线直播课:查看学习

  以上为节点抓取数据示例:抓取神奇宝贝插画和生成Excel文件的详细内容,更多详情请关注php中文网其他相关话题文章!

  免责声明:本文转载于:掘金社区,如有侵权,请联系删除

  特别推荐:nodejs​节点

  上一篇:vue和applet有什么区别 下一篇:JavaScript中使用toLocaleString数字格式化的详细例子

  干货教程:抖音短视频成SEO新风口!

  我们将讨论公司关心的以下5个问题。有什么不明白的请私信黑来谷0(heilaigu01).

  一、什么是搜索引擎优化?

  二、为什么是 抖音SEO?

  三、哪些公司适合抖音SEO?

  四、抖音怎么做SEO?

  五、影响抖音排名的因素有哪些?

  一、什么是搜索引擎优化?

  SEO是英文“Search Engine Optimization”的缩写(具体英文可以百度)。直译就是优化搜索引擎的信息,因为搜索引擎是一个存储互联网内容的平台,所以你的优化对象只能是这些信息。

  现在切换到用户的角度来回忆一下,你会在什么情况下使用搜索引擎?当你有明确的内容需求时,你会去“百度”吗?毕竟在PC互联网如火如荼的某个阶段,搜索引擎是互联网的中心,几乎所有的互联网内容都需要通过搜索引擎的入口更高效地获取。因此,用户可以使用关键词的各种组合,悠闲地搜索想要的信息。

  用户的目的是获取有用的内容。 关键词的准确率越高,搜索结果页的内容匹配度越高。相应地,与需求匹配的内容越高,其点击率就越高,这条信息背后的商机也就越大。

  这里是一个简短的列表:

  用户:想要获取内容,因为他有一定的需求,而需求的背后是商业价值;

  平台(搜索引擎):是信息匹配的幕后推动者,帮助双方更高效地匹配内容,赚取*敏*感*词*;

  商家:他的产品/服务能满足这部分需求,他希望利用平台的窗口,把不良信息给抹掉。

  服务商:商家的优势在于自己的产品。在线推广是一个跨领域的类别。服务商可以帮助商家解决这方面的专业问题。

  因此,SEO 就是在这种需求的背景下诞生的。商机的转化围绕着信息的有效匹配,所有角色的工作重心都围绕着信息匹配。

  如何实现信息的有效匹配?简单来说就是通过SEO的手段来调整搜索结果的排名。搜索引擎平台本身会按照算法的默认机制进行排序,但是这种排序会有很多“不人道”的地方,就是排名靠前的内容并不是用户真正想要的, SEO进一步体现。出来吧。

  这样,商家和服务商可以提高信息的排名,获得更多的曝光率,获得有效的线索。搜索引擎平台也可以从中受益,因为用户拥有更好的搜索体验。如果可以在这些平台上找到有用的信息,用户愿意使用这个工具。只要有用户,这个平台的商业模式就可以继续运作。 .

  

  二、为什么是 抖音SEO?

  抖音SEO与上面提到的传统SEO逻辑是一致的。无非就是让品牌的信息在一些关键词搜索结果页面得到更大的曝光,从而实现线索转化。

  搜索引擎是PC互联网时代的王者,移动互联网时代的王者是短视频。

  以上组是基于在互联网上采集的抖音数据。中国网民数量只有10亿+。不计其他平台,仅抖音的日活跃用户就已超过6亿。前段时间我也看到一组数据是视频账号的日活跃度已经超过了8亿。

  不难发现,短视频的内容消费已经全面取代图文内容。我们已经正式进入短视频时代,品牌的下一个流量出口也一定是短视频。搜索引擎也有它的价值,一代人有一代人的使命,至少在这个时代,它不再是主角。

  因此,企业的主要营销阵地不得不向短视频迁移。

  短视频营销的播放方式有视频、搜索、直播三种方式。

  在算法推荐时代,只要有能力制作出符合用户口味的视频,就可以获得免费流量。但是,面对短视频等新事物,很多公司还不是很会玩,现在竞争非常激烈,内容出圈的门槛越来越高,越来越并且更难在没有广告的情况下获得流量。可以明显感觉到,企业的运营成本也在正线上。

  搜索是另一种获取流量的方式,也就是我们所说的抖音SEO。用户只会将时间花在能够满足他们需求的内容上。比如,他们的需求是看一些搞笑有趣的内容来放松一下,或者打破某个知识盲区等等。

  与平台推荐的方式相比,主动搜索带来的流量具有更大的商业价值。

  因为用户的目的很明确,知道自己要找什么,会使用关键词搜索方式获取信息;而且很紧急,相当于“项目有需求”的状态,他们不愿意被动地等待平台推荐合适的内容,而是马上去搜索。

  这也是我说公司必须做抖音SEO的原因。当用户在搜索关键词时,你的信息刚刚出现,这意味着商机即将到来。不然这些流量商机就成了同行的玩意儿。

  最重要的是抖音SEO是目前成本最低的推广方式。

  三、哪些公司适合抖音SEO?

  抖音SEO是一种通用的推广方式,没有任何行业限制。无论是企业IP还是个人IP,都适合抖音SEO。但是你要评估是否值得去做,也就是投入产出的性价比如何?不同的行业和品类实际上会略有不同。在我看来,客户单价产品高的公司做抖音SEO是非常有必要的。

  客户在购买客单价高的产品时,往往会有这两种行为:“横向比较”和“背景调查”。

  由于价格偏高,客户下单时会非常谨慎,下单前多方比较是必不可少的。电商平台的购买评论、知乎小红书的好东西推荐、问答平台的经验分享、专业的产品评测,都是为了解决用户下单的难点。而且TO B的产品采购要经过多个部门的审核,所以要善用抖音SEO,向客户展示更多的正面信息。

  如果只是几十元的产品,客户不会有如此强烈的搜索和了解欲望。看到喜欢的就直接在*敏*感*词*下单了。

  对于客户单价高的产品,产品质量和售后服务是客户最看重的一点。没有人愿意花高价买一堆麻烦和不愉快的经历。毕竟这种产品的更换成本不低。为了尽可能让自己无后顾之忧,客户会先上网查一下这个品牌或产品是否还有“黑历史”遗留。

  假设有一个真正的污点,抖音SEO 也是掩埋它的好方法。如果没有,它也可以旨在建立强大的品牌实力。客户经常可以看到你的信息,默认就是这家公司实力还不错。这也是在潜移默化地将公司的软实力植入客户心中,有利于转化率的提升。

  

  四、抖音怎么做SEO?

  操作逻辑与抖音的操作相同。您只需要在每个操作节点上添加一些 SEO 操作即可。就这么简单。这就是所谓的SEO思维。让我们分解一下。

  1、查找关键词

  对抖音的操作稍有了解的人都知道,选题决定生死。话题的选择来自于账号的定位,定位决定了变现模式。同样的,抖音SEO也得先确定主题。主题与您提供的产品/服务有关,产品/服务的背后是关键词。客户通过搜索 关键词 来搜索产品/服务。我们需要做的是提供相应的内容来满足客户的即时需求,从而获得更多的商机。

  我们提供短视频营销服务,“短视频营销”是待优化的产品关键词。但是,这个词容易出现问题。 “营销”这个词对大多数客户来说太专业了。只有同行或业内人士更喜欢这样搜索,而且这个词与用户的实际搜索习惯不太吻合。客户在寻找匹配服务时,会使用另一种表达方式,比如“短视频推广”、“短视频培训”、“短视频生成运营”……。

  从这里可以看出定位的重要性。目标客户画像会影响您的关键词选择。你的客户是谁?在什么水平?专业程度如何?他们的搜索习惯和行为不同。

  当然,准确的用户画像是个伪命题。为了尽可能满足更广泛的目标群体的搜索需求,我们可以将产品/服务“翻译”为替代品。因为用户的认知不同,对于同样的需求,有人称之为“短视频营销”,有人称之为“短视频推广”,也有人称之为“短视频生成运营”。在这种情况下,我们可以将这三个关键词作为核心关键词优化。

  你也可以在确认核心的时候使用这个思路关键词,这里有3种方式获取关键词:

  1、咨询业内专业人士。比如询问公司的研发和销售,了解行业对这个产品的称呼,并记录下来。

  2、看产品相关专业文章或浏览社交媒体平台,可以获得更真实的数据。

  3、相比前两种“笨方法”,利用数据平台获取关键词是一种更加科学的方法。建议大家去各种指数工具(如百度指数、巨数、微信指数等)、各平台下拉框(如百度、今日头条、抖音、小红书等) )和第三方数据工具(如5118、站长工具、各平台广告投放工具等)获取。

  2、找话题

  在我们将产品/服务转化为关键词之后,我们要考虑应该用什么内容来满足用户的需求。这些内容就是我们所说的选题。

  记住营销漏斗,提高最终转化效果的方法是增加每一层的规模和转化率。上面提到的关键词可以在一定程度上解决曝光问题,但不一定能提高转化率。

  用户在搜索 关键词 时必须进行过滤。为什么要过滤?因为有很多内容不符合他的要求,这些不规范的内容是“曝光不转化”的直接原因之一。

  在传统的SEO场景中,用户搜索关键词可以直接进入商家官网。官网各页面的内容组合足以满足用户80%以上的业务需求,流量变现效率也相应更高。内容的选择不要太苛刻。

  但在短视频平台上,完全是另外一个逻辑。搜索关键词的用户只输入了你账号下众多内容之一,再加上短视频的“短”属性,难免会导致每一个视频描述的点都很简单一、为用户过滤信息的成本也在增加。

  为了获取更准确的内容,用户经常使用长尾思维来搜索信息。用户的这种搜索思维是我们搜索主题的核心。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线