trisun 发表于 3-6-2010 13:46:28

有谁写过supersite采集器

有谁写过supersite采集器? 按照例子没问题,但是另外写,不是说规则不对,写对了也没有采集结果。

比如说 采集文学城首页# SupeSite Dump
# Version: SupeSite 7.5
# Time: 2010-06-03 11:44:17
# From: SupeSite社区门户 (http://www.imobilebbs.com/supersite)
#
# This file was BASE64 encoded
#
# SupeSite: http://www.supesite.com
# Please visit our website for latest news about SupeSite
# --------------------------------------------------------


YTo1Mjp7czo3OiJyb2JvdGlkIjtzOjI6IjE1IjtzOjQ6Im5hbW
UiO3M6MTA6Indlbnh1ZWNpdHkiO3M6MzoidWlkIjtzOjE6IjEi
O3M6ODoiZGF0ZWxpbmUiO3M6MTA6IjEyNzU0ODUwMTkiO3M6OD
oibGFzdHRpbWUiO3M6MToiMCI7czoxMToiaW1wb3J0Y2F0aWQi
O3M6MToiNiI7czoxMDoiaW1wb3J0dHlwZSI7czo0OiJuZXdzIj
tzOjg6InJvYm90bnVtIjtzOjE6IjAiO3M6MTE6Imxpc3R1cmx0
eXBlIjtzOjM6Im5ldyI7czo3OiJsaXN0dXJsIjtzOjkwOiJhOj
I6e3M6NjoibWFudWFsIjthOjE6e2k6MDtzOjM1OiJodHRwOi8v
d3d3Lndlbnh1ZWNpdHkuY29tL2luZGV4Lmh0bSI7fXM6NDoiYX
V0byI7czowOiIiO30iO3M6MTM6Imxpc3RwYWdlc3RhcnQiO3M6
MToiMCI7czoxMToibGlzdHBhZ2VlbmQiO3M6MToiMCI7czoxMj
oicmV2ZXJzZW9yZGVyIjtzOjE6IjAiO3M6NjoiYWxsbnVtIjtz
OjM6IjEwMCI7czo2OiJwZXJudW0iO3M6MjoiMTAiO3M6Nzoic2
F2ZXBpYyI7czoxOiIwIjtzOjY6ImVuY29kZSI7czo2OiJHQjIz
MTIiO3M6MTM6InBpY3VybGxpbmtwcmUiO3M6MDoiIjtzOjk6In
NhdmVmbGFzaCI7czoxOiIwIjtzOjE0OiJzdWJqZWN0dXJscnVs
ZSI7czoyNzE6IjxhIGhyZWY9Imh0dHA6Ly93ZWIud2VueHVlY2
l0eS5jb20vYWR2cG9zdC9CQlNWaWV3LnBocD9TdWJJRD1hZHZw
b3N0Jk1zZ0lEPTY2Ij7mi6jkuK3lm73ml6BQSU7nlLXor53lja
HotLnnjofpmY3kuLoxLjjvv6As5Y+m6YCBNjDliIbpkp/lhY3o
tLk8L2E+PC9saT5bbGlzdF08dGQgaGVpZ2h0PSIxNyIgYmFja2
dyb3VuZD0iaW1hZ2VzL2RvdGxpbmVzLmdpZiI+PHRhYmxlIHdp
ZHRoPSIxMDAlIiAgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMC
IgY2VsbHBhZGRpbmc9IjAiPiAiO3M6MTg6InN1YmplY3R1cmxs
aW5rcnVsZSI7czoxNToiPGEgaHJlZj0iW3VybF0iIjtzOjE3Oi
JzdWJqZWN0dXJsbGlua3ByZSI7czowOiIiO3M6MTE6InN1Ympl
Y3RydWxlIjtzOjUyOiJ0ZCBiZ2NvbG9yPSIjZjBmMGUwIiBjbG
Fzcz0iY25UaXRsZSI+W3N1YmplY3RdPC90ZD4gIjtzOjEzOiJz
dWJqZWN0ZmlsdGVyIjtzOjA6IiI7czoxNDoic3ViamVjdHJlcG
xhY2UiO3M6MDoiIjtzOjE2OiJzdWJqZWN0cmVwbGFjZXRvIjtz
OjA6IiI7czoxMDoic3ViamVjdGtleSI7czowOiIiO3M6MTg6In
N1YmplY3RhbGxvd3JlcGVhdCI7czoxOiIxIjtzOjEyOiJkYXRl
bGluZXJ1bGUiO3M6MDoiIjtzOjg6ImZyb21ydWxlIjtzOjA6Ii
I7czoxMDoiYXV0aG9ycnVsZSI7czowOiIiO3M6MTE6Im1lc3Nh
Z2VydWxlIjtzOjEyNzoiPHRkIHZhbGlnbj0idG9wIiBjbGFzcz
0ibWFpbiI+W21lc3NhZ2VdPHRkIHdpZHRoPSIyMCI+PGltZyBz
cmM9ImltYWdlcy9waXhlbF90cmFucy5naWYiIHdpZHRoPSIyMC
IgaGVpZ2h0PSI0MiIgYm9yZGVyPSIwIj48L3RkPiI7czoxMzoi
bWVzc2FnZWZpbHRlciI7czowOiIiO3M6MTU6Im1lc3NhZ2VwYW
dldHlwZSI7czo0OiJwYWdlIjtzOjE1OiJtZXNzYWdlcGFnZXJ1
bGUiO3M6MDoiIjtzOjE4OiJtZXNzYWdlcGFnZXVybHJ1bGUiO3
M6MDoiIjtzOjIxOiJtZXNzYWdlcGFnZXVybGxpbmtwcmUiO3M6
MDoiIjtzOjE0OiJtZXNzYWdlcmVwbGFjZSI7czowOiIiO3M6MT
Y6Im1lc3NhZ2VyZXBsYWNldG8iO3M6MDoiIjtzOjg6ImF1dG90
eXBlIjtzOjE6IjEiO3M6MTE6IndpbGRjYXJkbGVuIjtzOjE6Ij
AiO3M6MjA6InN1YmplY3R1cmxsaW5rY2FuY2VsIjtzOjA6IiI7
czoyMDoic3ViamVjdHVybGxpbmtmaWx0ZXIiO3M6MDoiIjtzOj
E2OiJzdWJqZWN0dXJsbGlua3BmIjtzOjA6IiI7czoxNjoic3Vi
amVjdGtleWNhbmNlbCI7czowOiIiO3M6MTA6Im1lc3NhZ2VrZX
kiO3M6MDoiIjtzOjE2OiJtZXNzYWdla2V5Y2FuY2VsIjtzOjA6
IiI7czoxMzoibWVzc2FnZWZvcm1hdCI7czoxOiIxIjtzOjIwOi
JtZXNzYWdlcGFnZXVybGxpbmtwZiI7czowOiIiO3M6NzoidWlk
cnVsZSI7czozOiIxfDIiO3M6MTU6ImRlZmF1bHRkYXRlbGluZS
I7czoxMDoiMTI3NTQ4Mzk3MCI7czo3OiJ2ZXJzaW9uIjtzOjM6
IjcuNSI7fQ==规则测试都能有结果,但运行就是无结果。
哪位大侠指导一下。

coredump 发表于 3-6-2010 14:19:43

不懂,这是什么东西?

trisun 发表于 3-6-2010 14:22:37

自动抓取网站内容。类似WEB SPIDER

trisun 发表于 3-6-2010 15:48:22

会用了,supersite 采集器真不错。:lol :lol :lol

coredump 发表于 3-6-2010 15:52:43

想乱发广告吗:lol

trisun 发表于 3-6-2010 16:03:45

原帖由 coredump 于 3-6-2010 15:52 发表 http://www.freeoz.org/bbs/images/common/back.gif
想乱发广告吗:lol

你是技术员,FreeOZ 也是用的 DISCUZ的产品。在主页上加个自动采集新闻的功能也是不错的。:lol :lol :lol

cfk 发表于 6-6-2010 16:25:44

你这玩意不好。

这种都是预设规则的,目标网站哪怕是去掉一个div或者多加一个div都会失效。

有两种比较好的方法
* 研究下readability.js   智能的判断内容
* 自己写xpath解析

前者写好了,spide放出去什么都不用管了
后者写好了,如果有错很容易修正

trisun 发表于 6-6-2010 19:50:31

原帖由 cfk 于 6-6-2010 16:25 发表 http://www.freeoz.org/bbs/images/common/back.gif
你这玩意不好。

这种都是预设规则的,目标网站哪怕是去掉一个div或者多加一个div都会失效。

有两种比较好的方法
* 研究下readability.js   智能的判断内容
* 自己写xpath解析

前者写好了,spide放出去什 ...

有详细一点的信息吗?

cfk 发表于 6-6-2010 20:47:01

谢谢分数。

我拿一段我得代码出来得瑟一下,
      foreach my $v ($tree->findnodes('//table[@id=\'forum_142\']/tbody/tr/th/span')) {
这是xpath,用以解析某个论坛的帖子索引信息。xpath对于xml/html的处理都是非常方便的。

再来看一段erlang得代码
debian-vm:~# cat test/freelancer.erl
-module(freelancer).
-include_lib("xmerl/include/xmerl.hrl").
-export().

fetch_project_title() ->
      Body = fetch_project_feed(),
      { Xml, _Rest } = xmerl_scan:string(Body),
      [ H | _Remaining ] = xmerl_xpath:string("//item/title/text()", Xml),
      { _, _, _, _, Title, _ } = H,
      process(_Remaining, [ Title ]).

process([], Titles) ->
      Titles;
process(R, Titles) ->
      [ H | _Remaining ] = R,
      {_, _, _, _, Title, _ } = H,
      process(_Remaining, ).


fetch_project_feed() ->
    URL = feed_url_for(),
    { _, {_, _, Body }} = http:request(URL),
    Body.

-define(BASE_URL,
      "http://www.freelancer.com/rss.xml").

feed_url_for() ->
      ?BASE_URL.
这个是用以获取并分析freelancer.com的rss feed的程序。 (顺带说一点,要是有兴趣做freelancer可以来http://www.freelancer.com/affiliates/cfk )

这个是我刚刚说的第二点。

第一点 readability.js 应用非常广泛,从自动采集到RSS全文输出都有应用。
http://code.google.com/p/arc90labs-readability/
核心内容是找到内容最为合适的关闭的tag

我有一段时间沉迷采集的时候,提出过一个相似的计算法则
闭合的tag中,有效信息长度/tag闭合区间长度最大的时候就是全文
但是我得计算规则和readability.js在采集论坛的时候并不是很好,因为对于一个论坛,正文部分和回帖部分都是需要采集的,没有办法处理。

但是如果思考深入的话,会发现对于论坛这种动态生成结构的页面,更好的方法是启发性的。我目前的私人side project就是这个,完全自动化的采集。

XPath在Perl 下面 http://search.cpan.org/~mirod/HTML-TreeBuilder-XPath-0.11/lib/HTML/TreeBuilder/XPath.pm

如果你要是手工写的化,下面还有几个重要的东西
LWP::UserAgent
WWW::Mechanize

[ 本帖最后由 cfk 于 6-6-2010 20:51 编辑 ]

cfk 发表于 6-6-2010 21:01:48

我觉得光是采集不过瘾,过瘾的是通过采集给数据增加附加值。

我给你份我搞的东西看(偷看别人的销售数据)
https://spreadsheets.google.com/pub?key=0AlvNA4YY9y5MdHFVVl90czhyeDNDazF3dnk0WHpRRHc&output=html

采集会有版权问题,通过分析采集来的数据(metadata)制造新的价值就不会有版权问题了。

coredump 发表于 6-6-2010 21:22:48

原帖由 cfk 于 6-6-2010 16:25 发表 http://www.freeoz.org/bbs/images/common/back.gif
你这玩意不好。

这种都是预设规则的,目标网站哪怕是去掉一个div或者多加一个div都会失效。

有两种比较好的方法
* 研究下readability.js   智能的判断内容
* 自己写xpath解析

前者写好了,spide放出去什 ...
readability.js 真是个好东西啊,多谢分享,非常感兴趣:good:good

Fernando 发表于 6-6-2010 23:09:22

有什么程序能自动抓取网页,然后email发送的吗? 我一直想找个这样的软件,上班时候就不用开浏览器了,收邮件就可以看了

cfk 发表于 7-6-2010 08:07:54

原帖由 Fernando 于 6-6-2010 23:09 发表 http://freeoz.org/bbs/images/common/back.gif
有什么程序能自动抓取网页,然后email发送的吗? 我一直想找个这样的软件,上班时候就不用开浏览器了,收邮件就可以看了

RSS2Email

coredump 发表于 7-6-2010 10:24:28

:good

trisun 发表于 7-6-2010 13:48:09

:good :good :good :good :good

kaile 发表于 10-6-2010 00:56:01

向高手学习,这个贴子要mark

kaile 发表于 10-6-2010 01:01:24

请教一下CFK,有没有C++的开源库功能类似于xpath和readability.js 的?

coredump 发表于 10-6-2010 12:23:23

回复 #17 kaile 的帖子

QT啦,4.6版里有Xpath和XQuery

cfk 发表于 10-6-2010 20:46:29

很多人用python的解析器
简易xpath生成器 selectorgadget

我在做lisp的流式xml解析器。

key 发表于 11-6-2010 23:08:24

JDK自带的xpath,不过不算好用,API有点复杂。我做了一个简化版本的。
不过自己使用直接用dom4j的,我不喜欢用dom4j的版本,原因是不想再弄一套api来跟踪。
另外saxon9的xquery不错。

我正在考虑groovy

原帖由 coredump 于 10-6-2010 12:23 发表 http://www.freeoz.org/bbs/images/common/back.gif
QT啦,4.6版里有Xpath和XQuery
页: [1]
查看完整版本: 有谁写过supersite采集器