与Ruby 相比,NodeJS 有哪些优势

Python016

与Ruby 相比,NodeJS 有哪些优势,第1张

Google JS Runtime 非常快

nodejs 默认 async(异步),有些时候快一些

适合 one page app (比如gmail那样的)我觉得的是更适合ajax所以才这样

语言统一,不用前后台换来换去,都是javascript(有人不喜欢javascript,可以学 coffee script),同时和mongodb结合比较好(相比SQL)。现在有一个MEAN stack: mongodb, express, angular and nodejs,貌似学好了很厉害。

Ruby on Rails优势

成熟,gem很好很多很全(不过nodejs现在用的人越来越多了)

会的人比较多(至少再美国)

学起来相对比nodejs要容易。nodejs的 abstraction(抽象?)比RoR少,还涉及到 callbacks(因为是异步)

移动端可能要求ajax多一些(如果你不做 native app),这个主要是前台设计(个人认为)。如果是点评网站的话,我觉得可能 Ruby on Rails 还是更合适一些。

innodb_flush_log_at_trx_commit = 1 #每次commit 日志缓存中的数据刷到磁盘中 innodb_log_buffer_size = 8M #事物日志缓存 innodb_log_file_size = 500M #事物日志大小

以下是爬虫经常用到的库

请求库

1. requests

requests库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文章 一起看看Python之Requests库 ,大家可以去看一下。

2.urllib3

urllib3是一个非常强大的http请求库,提供一系列的操作URL的功能。

3.selenium

自动化测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

对于这个库并非只是Python才能用,像JAVA、Python、C#等都能够使用selenium这个库

4.aiohttp

基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。

这个属于进阶爬虫时候必须掌握的异步库。有关于aiohttp的详细操作,可以去官方文档:https://aiohttp.readthedocs.io/en/stable/

Python学习网- 专业的python自学、交流公益平台!

解析库

1、beautifulsoup

html 和 XML 的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。一个我经常使用的解析库,对于html的解析是非常的好用。对于写爬虫的人来说这也是必须掌握的库。

2、lxml

支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

3、pyquery

jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。

数据存储

1、pymysql

官方文档:https://pymysql.readthedocs.io/en/latest/

一个纯 Python 实现的 MySQL 客户端操作库。非常的实用、非常的简单。

2、pymongo

官方文档:https://api.mongodb.com/python/

顾名思义,一个用于直接连接 mongodb 数据库进行查询操作的库。

3、redisdump

redis-dump是将redis和json互转的工具;redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby。需要先安装ruby的管理工具rvm安装高版本的ruby。