知乎书本排行网站——建站委曲

网站地点books.bigfacewo.com
近来事变去了,觉得人也变懒了,一向想写一些关于这个网站东西分享出来。逐步写吧。
前情提纲:关于大神来讲,这个网站运用的手艺都是小儿科啦。不过,我想照样有朋侪有这个需求的。这篇文章的内容不肯定都是正确的,用的要领也不是最好的,不过我一直置信一句话——兼听者明,偏听则暗。所以看这篇文章的朋侪,愿望你能带入本身的思索,同时更愿望能够带给你一些东西。

好了,空话不多说了。

网站是参考了一个外文网站。一时心血来潮,因而当时想,假如拿来剖析知乎这个网站,会有什么效果呢。
有一些不一样的处所是stackoverflow这个网站开放了api,所以拿到数据是很轻易的。知乎并没有公然api,只能采用爬虫手腕。
所以,很自然地,流程大抵分为四个步骤:

  1. 数据猎取
  2. 数据剖析
  3. 建站数据预备
  4. 建站

一、数据猎取

写爬虫要斟酌的一些题目:

  1. 可靠性。当碰到顺序毛病或许一些不可抗力要素如断电等形成的顺序住手,怎样从住手的时候最先继承爬取;或许说得设想一个状况,该状况保留了已抓取数据的相干信息,下次抓取使命会疏忽已抓取的信息(这不是空话嘛,哈哈),另有一些须要斟酌的题目:

    • 模仿上岸(后续填坑)
  2. 速率。假定一秒钟爬取1条数据,那末600条一个小时,6000000条就须要10000个小时,大提要一年多。这是不能接收的一个速率,单机多线程抓取10条每秒照样能够接收的。云云,大几率会触发知乎反爬虫体系,所以采用以下要领来逃避这个题目:

    • 代办池 。能够找一些免费的代办网站,如西刺,爬一些ip下来用,固然这须要设想一个体系或效劳,该效劳不断地去猎取代办ip,然后考证是不是可用,再存起来备用。当碰到爬虫考证页面时应当将该ip移除或许标记为临时不可用。然则,许多情况下知乎照样能经由过程你的要求获得你的实在ip。
    • Cookie。
    • 从新拨号。这个简朴而且异常可行,假如是单条宽带,从新拨号会形成短时候的爬取住手。
  3. 优先级。实在,并非每条数据都须要的或许说包含了有用信息,假如对要抓取的数据有肯定相识,那末我们能够提取一些特性,优先抓取这部分数据。事实上我也这么做的,如许能够最大限制地节省时候。

当我打仗Python以后,就决议用它来写爬虫了,由于实在是太轻易了!

二、数据剖析

从数据中提取书本信息,有两种方法:

  1. 提取书名号中的内容。
  2. 先竖立书本信息库,再做婚配。

第二种方法能够做到更准确,然则竖立书本数据库也颇费时候。所以采用了第一种要领。现实上知乎上只需提到书本险些都邑带上书名号,或许有一些政治隐喻不能提的,固然我们也不须要这类书的信息。

统一本书在每一个回复中最多只能涌现一次,将数据汇总后,获得“标签:书名:提到次数”的如许的一个文本。

三、建站数据预备

根据我的需求,应当竖立以下三张表:

  1. 标签表:寄存该书所对应标签,多对多的关联。
  2. 书本表:寄存书本的信息,以及该书的提到总次数。
  3. 标签-书本对应关联表:寄存该标签下该书本被提到的次数信息。

将步骤二获得的文本,导入到数据库中去。

为了获得书本的详细信息,此时还须要将书名放到一些书本网站,如我去了亚马逊举行搜刮,然后将获得的信息写到数据库中去,道理同步骤一。固然,这里也引入了一些偏差,由因而隐约婚配,致使一些书本的信息毛病(背面人工考核了一部分数据)。

到此,建站数据预备好了。

四、建站

建站就比较简朴了,背景用Restful作风把接口写好,前端就能够运用了。
运用Vue构建了一版单页运用,然则搜刮引擎不能抓取,因而又做了一版ssr的,运用了Nuxt.js。

网站差不多4天就写好了,大部分时候都花在了步骤一和步骤二上了。所以,假如你也想做一个相似网站,无妨先从写爬虫最先。

还想做的事变:

  1. 情绪剖析。一本书被提到,其评价有多是正面的也有多是负面的,愿望到场一个情绪剖析的功用,然后加权到终究效果。
  2. 进步书本信息正确度。 原本能够请求亚马逊或许淘宝之类的网站的api,经由过程api能够猎取商品数据,能够应用来查询书本信息,然则请求很贫苦,末了照样采用了爬虫+人工的体式格局。
  3. 挪动端优化。 现在网站的排版在挪动端表现不是太好。

总结

综上,写的比较简单,固然,不具备直接可操作性,由于不涉及到详细的代码。然则,我想表达的是,全部流程就在这里,你能够用你熟习的编程言语或许东西来完成它,就算不会Python,你依然能够应用Java、C#来写爬虫或许做剖析;另有一个主要的原则是,只管复用他人的东西,如python爬虫相干的库功用异常壮大,直接拿来用就能够,同理,运用Java,你须要去观察该言语相干的库,哪些能完成你的目标,然后去运用它吧。
别的,一些省略的内容,将后续补充。

    原文作者:bigface
    原文地址: https://segmentfault.com/a/1190000013040984
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞