spider-lang :爬虫语言,专为网络爬虫设计

2015-09-16 21:11:11 +08:00
 vitovan

大家看看有没有用?

下面是代码(最好看图,有高亮):

;;Example 1: Hello World
;;V2EX 好像不需要验证码,此为模拟
GET http://v2ex.com/signin FOR img.captcha
  :T 登录失败,需要验证码
  :F POST http://v2ex.com/signin WITH u:vitovan p:password FOR a.fade[href=/notifications]
    :T GET http://v2ex.com/notifications FOR #Main>.box>div.cell AS JSON
    :F 登录失败,未知原因
;;Example 2: Code Block and Params
;;define a block
BLOCK v2ex-login $param
   POST http://v2ex.com/signin WITH u:vitovan p:password $param FOR a.fade[href=/notifications]
    :T GET http://v2ex.com/notifications FOR #Main>.box>div.cell AS JSON
    :F 登录失败,未知原因
;;call block
GET http://v2ex.com/signin FOR img.captcha AS IMG
  :T POST http://handle-captcha-service.com/img WITH @RESULT AS TEXT
    :T CALL v2ex-login c:@RESULT
  :F CALL v2ex-login

4836 次点击
所在节点    奇思妙想
25 条回复
halfcrazy
2015-09-16 21:30:00 +08:00
DSL ?看注释像是 clojure 写的?
29488503878
2015-09-16 21:35:32 +08:00
伪装 http 头怎么办,采集来的数据要入库怎么办
vitovan
2015-09-17 07:15:28 +08:00
@29488503878 新加了附言。
vitovan
2015-09-17 07:16:50 +08:00
@halfcrazy 嗯......只是个设想,还没实现。不知道有没有用,所以先讨论一下。
cxh116
2015-09-17 07:43:39 +08:00
解析与数据提取那一块准备写成什么样?
plqws
2015-09-17 08:40:24 +08:00
想法很好,不过相对于用代码,我更喜欢图形界面
bengol
2015-09-17 08:45:47 +08:00
好丑
Ncer
2015-09-17 08:46:32 +08:00
有意思
qdwang
2015-09-17 08:53:43 +08:00
用 Python 实现过和这个很像的内部 dsl
tobyxdd
2015-09-17 08:55:12 +08:00
还不错
tdifg
2015-09-17 09:19:42 +08:00
要是只为了爬虫这么一件事,为啥不直接写个框架啊?
est
2015-09-17 09:31:24 +08:00
一个场景:

找到页面 css 路径为 body div.container div.pages div.current 所在元素的 text 值,转换为 int ,加 1 ,作为下一页加入到当前页面 URL 中,继续爬取下一页。
vitovan
2015-09-17 09:34:54 +08:00
@est 稍等我试试。
vitovan
2015-09-17 09:36:16 +08:00
@cxh116 基本解析就类似于这样: GET http://v2ex.com FOR a ["href" "text"] AS JSON
进阶的就上正则了。
vitovan
2015-09-17 09:36:47 +08:00
@plqws 这不是问题,现在有没有好用的爬虫构建图形界面?
vitovan
2015-09-17 09:37:46 +08:00
@tdifg 框架有语言和运行环境的限制吖。
vitovan
2015-09-17 09:55:20 +08:00
@est 已附言:
est
2015-09-17 11:30:01 +08:00
@vitovan 嗯。。看来是需要发明个 INC 表达式。。
vitovan
2015-09-17 12:51:34 +08:00
@est 一些基本的加减乘除还是要有的吧,本来没这个打算(原本是想:所有链接均应该由页面元素点击而来,而不是程序组建),你这么一提还是有必要的。
est
2015-09-17 12:54:09 +08:00
@vitovan 还有更加复杂的正则组装,跨 JSON 拼接 URL 等等。麻烦死了都要!

最要命的,是对付 google 这类变态,都不能解析 json 了,要解析 js !

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

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

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

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

© 2021 V2EX