大家好,今天小编关注到一个比较有意思的话题,就是关于爬虫C语言的问题,于是小编就整理了2个相关介绍爬虫C语言的解答,让我们一起看看吧。
如何用C语言做出搜索引擎?
个人觉得完全用C语言去做一个搜索引擎,是能办到,但是成本会很高。首先我们来看一个通用的搜索引擎需要哪些模块。
一. 网络爬虫
要用C语言去做一个爬虫系统,成本会非常高,很多东西都需要自己实现。而爬虫系统,个人觉得python的Scrapy框架是一个很好的选择,从网页爬取到数据存入数据库有一条完整的链路。爬虫系统对性能的要求不高,Python完全可以胜任。
二. 倒排索引
倒排索引主要包括索引建立和索引更新。索引的数据结构以及一些算法,用C语言完全可以的,在线索引实时更新通过C语言实现效率也能高一些。
三. 检索模型
如果只需要做一个简单的检索系统,直接BM25算法就可以了。如果系统比较复杂,考虑到线上效果,那么需要结合学习模型或深度学习模型,考虑到检索相关性,有很多复杂的设计。不过在线部分完全可以通过C语言实现。
一般来说,做一个搜索引擎需要根据不同的模块情况而选择不同的语言实现,充分发挥各种语言的优势即可。
如果说做一个完整的搜索引擎的话那么需要几种语言的结合,比如说前端的交互 后端的数据处理和爬虫,只用C的话很难实现,做后台数据处理比较合适,如果说怎么做的话不太好说,涉及到的东西比较多,比如说第一步爬数据 然后存储 处理(分类 提取关键字)等等,步骤很多的。
在当前环境下这个操作不推荐,并不是说C语言无法写搜索引擎,而是C语言的优势不在这里。作为大多数流行的现代语言鼻祖xC语言在运行效率方面的确具有较大优势,但是,其标准库支持的功能主要在一些基础的功能实现上。相比之下,python、java这些现代语言则拥有大量丰富的第三方库,在程序设计中有一条箴言叫做不要重复造轮子,既然已经有前人提供的库(也就是轮子),自己再从头再来的话效率与可靠性方面都会下降。因此,从效率角度来讲,***用python等语言设计搜索引擎可能更快更容易实现。
回到问题上,有一个(应该是)日本作者写的《自制搜索引擎》,可以解决制作搜索引擎技术线路的问题
听说有Python版的爬虫,那有没有swift、Objective-C的爬虫呢?
什么是爬虫?
广义上的讲,能够获取网络上的数据,就可以称之为爬虫,所以,任何语言理论上都可以写爬虫。
那么,为什么你提到的 swift 和 OC,这两个语言,没什么爬虫呢?
首先赞一个,态度是很好的,直到去GitHub搜,还知道用英文搜,这已经比很多人好了。
继续正题,swift 和 OC ,为什么没有爬虫呢?因为这是写客户端的啊骚年,直接把爬虫放进客户端,你不考虑并发,不考虑封IP,不考虑代理什么的吗?
一般来说,除非写纯工具类的 app ,我们写 *** ,都会有前端和后端之分,前端就是用端语言写的客户端,例如用 Java 写的安卓 ***,或者用 swift 写的 iOS *** ,OC 写的 Mac ***,但不管怎么说,这些都是广义上的前端,负责功能,交互,另外还会做一套后端,放在服务器上,负责数据的存储,一些大的计算等等,也包括爬虫部分。
例如我要开发一个 ***,功能是获取头条的精选回答,那么肯定会写爬虫,那么,爬虫放在哪呢?如果你放在客户端里,那么今日头条的网页格式一旦变化了,你的爬虫挂了,你的客户端就挂了,如果一个用户每天刷的太多了,今日头条把它封了,那对这个用户而言,客户端就挂了。如果把爬虫放在客户端里面,这都是必然会遇到的问题。
相反,如果把爬虫放在开发者自己的服务器,每个客户端都请求这个服务器地址,那么这些问题都会很容易解决,例如,如果今日头条的网页改版了,那么你只需要改一下服务器的爬虫,所有客户端就都能正常运行了。
总结一下,swift 和 OC 都可以写爬虫,但很少有人会这么干
到此,以上就是小编对于爬虫C语言的问题就介绍到这了,希望介绍关于爬虫C语言的2点解答对大家有用。