用 nodejs 撸了个爬虫,使用 leveldb 做队列,非常简单可用

2017-03-25 20:32:24 +08:00
 wl879

搜来搜去用 nodejs 做爬虫的介绍,都是些很基础的,如果只为学习是够用了,但如果想用它来做点什么,还都得是从头写起。其实,解析这部分重头写没什么好说的,不同网站不同规则吗,但做为爬虫最基本的队列呀,去重呀等很共性的功能部分,没找到有什么 nodejs 的框架能拿来就用。 所以,所以(想介绍下自己的东西,还非得说一些是非铺垫,嗯,鄙视自己),说一个我写的很简单的框架吧。

Crawl-pet 养一只爬虫宠物吧,已上传 npm ,安装如下

npm install crawl-pet -g

已开源到 Github : https://github.com/wl879/Crawl-pet

还有一篇使用的介绍: http://www.jianshu.com/p/1b9be0df5236

就请大家给看一看吧,怎么得,这回浏览量也的过 100 啊!

5625 次点击
所在节点    分享创造
7 条回复
a87150
2017-03-25 21:27:27 +08:00
过 100 了
wl879
2017-03-25 23:28:01 +08:00
呵呵,有很多是自己刷新出来的,简书里的浏览量才 50
FEDT
2017-03-26 00:59:58 +08:00
看看
phrack
2017-03-26 11:00:08 +08:00
对 nodejs 不了解,不过既然能跑 js ,我一直好奇一个问题。

我目前都是用 python 的爬虫,但是有一个问题, ajax 的页面,动态更新的内容只能自己去模拟请求,其实这样是非常恼人的,或者用 phantomjs ,但是也并不是那么舒服。

nodejs 能做到自动抓取 ajax 不?一是 ajax 刷新的页面内容,二是 ajax 的网络请求。
guokeke
2017-03-26 16:33:26 +08:00
@phrack 不能,无论是 Python 还是其他语言写的爬虫。 Ajax 写在页面指定的脚本里,想要运行脚本就需要一个 browser 环境。
123s
2017-03-27 09:16:55 +08:00
妈蛋,有空要看看你的代码,怎么写
vvaaiinn
2017-03-30 20:22:16 +08:00
@phrack 你需要 phantomjs. python node 都支持的。搞一发?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/350283

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX