[招聘爬虫] whereisjob.com ,昨天写了一个专门爬 V2EX 酷工作版块的爬虫

2015-08-18 09:44:33 +08:00
 vitovan

网址: http://whereisjob.com/
先上图:

昨天有人发了个帖子说:「那么多抓招聘网站内容的 V 友,可以把公司地址显示在地图上呀,方便挑选里家近的公司。」 http://v2ex.com/t/213594

然后我看国外有人抓 HackerNews 的 ( http://whoishiring.it/ ),没见国内有人抓 V2EX ,于是就做了个。

源码: https://github.com/VitoVan/whereisjob.com

有兴趣的朋友一起来完善~

5453 次点击
所在节点    分享创造
44 条回复
vitovan
2015-08-18 14:10:54 +08:00
@sciooga

1, 不是。昨天晚上就随手抓了最近几天的数据。
2, 数据库数据没有做删除的操作,还没考虑,不过前台仅返回最近两月的数据。
3, 一天爬 V 站两个月的数据,也是可操作的吧,我昨天试了试 V 站的请求拦截没那么严格。
vitovan
2015-08-18 14:15:10 +08:00
@laotaitai Lisp 的确是装逼神器,不过用了一段时间之后发现,还真的很好用,做原型特别快。
sciooga
2015-08-18 14:16:18 +08:00
@vitovan 单一节点还是可能的,如果是最近两月的全部主题就得上代理了... 不然一封就是两天那~
laotaitai
2015-08-18 14:57:52 +08:00
@vitovan 呀卧槽! 代码这么精简? 搞得我也想入手 Lisp 了. 听说 Lisp 有很多方言, 你用哪个方言?
vitovan
2015-08-18 15:05:05 +08:00
@laotaitai 是呀,代码超级精简,由于没有强类型概念,也就没有什么数据转换概念。原来用 Java 要好几个文件加上一个 Maven 配置的东西,在 Lisp 里可能就一句话。

关于方言,我个人推荐 Common Lisp ,工业化较强,包比较多。
laotaitai
2015-08-18 15:12:03 +08:00
@vitovan 感谢推荐. 哪天了解下, 要是比 Python 写起来舒服, 直接抛 Python 从 Lisp 了. 哈哈!
vitovan
2015-08-18 15:17:56 +08:00
@laotaitai 就像这个例子,总共 281 行代码:页面抓取、 DOM 遍历、模式匹配、数据存储、 WebServer 、定时任务等等全部在里面。

我最喜欢的还不是以上这些,是 Lisp 的 REPL 特性,留了一个 REPL 在服务器上,随时都可以连接上去查看或更改当前内存里的每一个变量、函数、类定义等等随便你想得到的东西。可以在不重启服务的情况下把整个服务代码全部重构。

vitovan
2015-08-18 15:24:14 +08:00
@laotaitai 也不用抛 Python 吖,要是做一些本地应用还是用 Python 的好,比如和硬件打交道的:机器学习、录音程序、播放器等一些硬件依赖的东西。

Common Lisp 对于外部依赖处理全靠 CFFI https://common-lisp.net/project/cffi/

个人感觉是跨平台处理的不是很好,所以遇到类似问题就直接 Python 或 平台语言了 (如: Window 上 C#)。
vitovan
2015-08-18 15:25:21 +08:00
@Razyshen 重写吖~
laotaitai
2015-08-18 15:32:38 +08:00
@vitovan 我就看中了那个极其精简之度, 就你说的"页面抓取、 DOM 遍历、模式匹配、数据存储、 WebServer 、定时任务", 这个在 Python 简直不能在这么短代码做完的.

Lisp 只要能在 Linux/Unix 上运行, 其他神马都不是问题.
Razyshen
2015-08-18 15:41:26 +08:00
@vitovan 如果人家有 app 产品的话,可以逆向他们的程序,找到数据接口!你说这样对不对!
vitovan
2015-08-18 15:55:51 +08:00
@Razyshen 说得好!好有激情撒~~

最后可能要死到版权上呐,就像 http://whereisjob.com , @Livid 一句话就能把它关掉吖。

只能玩玩撒。
Razyshen
2015-08-18 15:59:43 +08:00
@vitovan 办法总归是有的。只不过看你想得到想不到了
Livid
2015-08-18 16:38:25 +08:00
@vitovan 这是一个很有创意的作品,代码也实现得很有意思。谢谢你链接回 V2EX.com
laotaitai
2015-08-18 17:08:09 +08:00
@vitovan 请教个问题, 我刚才就入手 Common Lisp, 安装了 SBCL, 我输入 sbcl 这个命令, 进入 interactive, 我发觉在这里面试验代码不方便, 不像 Python 的 interactive 方便, 至少 Python 的可以上下左右移动光标.

代码写在文件里, 然后执行, 也不方便, 毕竟我只是想测试临时代码.

你有啥方式可以方便试验 Lisp 代码?
vitovan
2015-08-18 18:09:09 +08:00
@laotaitai 我的组合建议: Linux + Emacs + Slime + Quicklisp + SBCL ,这样下来全套环境都有了。

中文的 Lisp 教程好像不多,你可以 Google 一下,改天有空了我写个简明教程试试。
vitovan
2015-08-18 18:10:16 +08:00
@Livid 谢谢你创造了 V2EX 。
vitovan
2015-08-18 18:12:58 +08:00
@laotaitai 看错了,入手的话,建议先玩玩 GNU Emacs Lisp https://www.gnu.org/software/emacs/manual/html_node/elisp/
laotaitai
2015-08-18 18:19:23 +08:00
@vitovan 看起来很复杂的样子, 我慢慢研究去.
laotaitai
2015-08-18 21:58:03 +08:00
@vitovan 花了几个小时了解, 发现入门 Lisp 这个语言, 不难. 但是开发环境就蛋疼了, 入门门槛太高了. 光是 Emacs 就把我吓退了. 太特么变态了!

By the way: 你这个 server.lisp 里用的什么 web framework?

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

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

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

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

© 2021 V2EX