V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
milu05163614
V2EX  ›  分享创造

DXC 采集,一个跨平台的数据采集软件

  •  1
     
  •   milu05163614 · 2017-01-11 21:19:41 +08:00 · 4044 次点击
    这是一个创建于 2633 天前的主题,其中的信息可能已经有所发展或是发生改变。

    爬虫估计已经泛滥了,但是没有通用的解决方案。

    好比大家想造一辆汽车,网络上各种开源的发动机,底盘,你可以轻易的组装出自己的汽车,然后跟我说,看,组装出一台汽车没什么难的,难的当然是量产了,下次你再想要一辆汽车,你还得重复上面的过程。而且你的方案,别人又没法轻易使用,好比你给自己做了一件衣服,衣服好看是好看,别人想穿在自己身上,就未必合适了。

    市场上面一些解决方案。逛了一圈论坛,的确也发现一些不错的软件,但感觉都存在不少问题。

    我的软件就是为了解决上述问题而产生。

    1 、不会编程也可以编写采集规则
    2 、几分钟内就可以完成一条规则,刷刷刷的采集了。而你还在那调试代码。
    3 、通用的解决方案,基本上大部分网站都可以采集。对于一些个性化的需求,未来估计会开放一些接口,就可以针对性的低成本开发自己的爬虫系统。

    当然了,上面都是功能上的描述。

    还有其他功能:

    1 、跨平台。目前支持 win 、 mac 、未来会支持 linux 。

    程序不是.net 开发的,我最烦那些软件下载完还提醒我去下载什么 .net framework 框架,何况我很多年不用 win 了。 mac 下面的此类工具真的挺稀少。

    2 、可以使用浏览器访问,也可以在软件里面操作。就像你家的路由器,你可以通过网页去控制。这个软件也是一样。如果你装在服务器,你可以通过网页轻易去访问,操作。这个功能非常有用。

    3 、当然了,使用很简单。不用你安装什么环境。下载即可使用。开箱即用。写规则也很简单。这些可以慢慢体会。

    界面截图:

    img img

    下载地址: http://www.dxcer.com/
    官方论坛: http://bbs.dxcer.com/

    目前已经有不少用户使用这个软件,且评价都不错。

    51 条回复    2017-01-23 10:48:50 +08:00
    siknet
        1
    siknet  
       2017-01-12 08:36:57 +08:00
    看了下,功能已经很强了,对于普通采集对象来说基本够用了。

    后续版本会加入代理功能吧?单代理或者代理池或者二次代理都可以
    milu05163614
        2
    milu05163614  
    OP
       2017-01-12 11:33:56 +08:00
    @siknet 后续开发 linux 版本。放在服务器上面分布式采集才是王道。什么代理采集,这些肯定是标配。加入分布式采集,将任务分解出去,可以我们服务器后台帮你消化这些任务,也可以你自己搭建集群服务器去干活。
    milu05163614
        3
    milu05163614  
    OP
       2017-01-12 11:38:07 +08:00
    @siknet 目前可能对于通用性的采集的确够满足了。从用户反馈来看,几乎 95%以上的需求都可以满足。如果想要开发更加复杂的爬虫,可能以后开放一些二次开发的接口,基本写任何爬虫都没问题了。
    zqjilove
        4
    zqjilove  
       2017-01-12 11:55:50 +08:00
    基本用用还可以,碰到 JSON 数据加载的,就是完全不能用了。
    milu05163614
        5
    milu05163614  
    OP
       2017-01-12 12:15:41 +08:00
    @zqjilove 可以的,你要采集哪里,给我地址,我试试。
    milu05163614
        6
    milu05163614  
    OP
       2017-01-12 12:29:05 +08:00
    @zqjilove 我举个例子吧。

    稀土掘金博客的采集。这个页面: https://gold.xitu.io/user/576353b9207703006b9a557d

    源码里面是没有 [最新文章] 的数据的,这个是 ajax 请求。像你说的, json 数据加载。但是软件是可以采集这种数据的。
    zqjilove
        7
    zqjilove  
       2017-01-12 12:30:58 +08:00
    @milu05163614 下载来再仔细看看,初略看官方文档,貌似没看到。
    milu05163614
        8
    milu05163614  
    OP
       2017-01-12 12:34:24 +08:00
    @zqjilove 自己参考一下这个规则。 http://ww1.dxcer.com/iOS%E5%BC%80%E5%8F%91-%E5%8A%BC%E5%93%A5stone-%E6%8E%98%E9%87%91.dxc

    字符串方式去获取。下次演示规则里面放一个演示一下。
    zqjilove
        9
    zqjilove  
       2017-01-12 13:04:32 +08:00
    @milu05163614 字符串提取后的, JSON 数据 Unicode 问题,貌似没办法解决
    milu05163614
        10
    milu05163614  
    OP
       2017-01-12 13:21:11 +08:00
    @zqjilove 如果程序判断出来数据格式是 json ,会自己转换的。你说说你采集哪里有问题,我测试一下就知道了。
    zqjilove
        11
    zqjilove  
       2017-01-12 13:47:43 +08:00
    milu05163614
        12
    milu05163614  
    OP
       2017-01-12 14:01:28 +08:00
    你这个很简单。我上面给的就是例子。

    <img alt="img" src="http://ww1.dxcer.com/6D3FB20A-2755-4BA0-872C-EAA51C180537.png">



    >"url":"[data]",
    milu05163614
        13
    milu05163614  
    OP
       2017-01-12 14:02:31 +08:00
    回复 居然不支持 markdown 代码。

    截图:<img alt="img" src="http://ww1.dxcer.com/6D3FB20A-2755-4BA0-872C-EAA51C180537.png">
    提取规则:

    "url":"[data]",



    @zqjilove
    zqjilove
        14
    zqjilove  
       2017-01-12 14:09:36 +08:00
    @milu05163614 !!!!方便的话,给个联系方式
    sharpdevelop
        15
    sharpdevelop  
       2017-01-12 14:13:23 +08:00
    为什么我下载下来的安装包都是乱码的,解压也无法解压
    milu05163614
        16
    milu05163614  
    OP
       2017-01-12 14:19:37 +08:00
    @sharpdevelop 有些用户有这个问题,好像解压软件的问题,我在 mac 平台打包的,估计跟这个有关系。但是大部分用户都没问题。所以解决的办法,换一个解压软件试试。
    milu05163614
        17
    milu05163614  
    OP
       2017-01-12 14:19:52 +08:00
    @zqjilove QQ 452192831
    miao
        18
    miao  
       2017-01-12 21:25:31 +08:00
    建议开发 Linux 服务器版, 开机运行, 这样直接在 vps 采集, 在办公室里通过远程网页采集, 那是相当愉快的.
    milu05163614
        19
    milu05163614  
    OP
       2017-01-12 21:28:05 +08:00   ❤️ 1
    @miao 老夫正有此意。
    miao
        20
    miao  
       2017-01-12 21:31:32 +08:00
    @milu05163614 感谢感谢.
    milu05163614
        21
    milu05163614  
    OP
       2017-01-12 21:33:36 +08:00
    @miao 目前软件可以在 linux 图形界面下面运行没问题的。不过很多服务器都是命令行。这个需要花点时间。
    miao
        22
    miao  
       2017-01-12 21:38:23 +08:00
    @milu05163614 是啊. 比较复杂.
    spice630
        23
    spice630  
       2017-01-12 23:03:28 +08:00
    需要登陆的可以不?比如 zhihu
    难道你的采集程序不是前后端分离,后端基于 linux 开发?
    milu05163614
        24
    milu05163614  
    OP
       2017-01-13 00:05:43 +08:00
    @spice630
    1 、可以采集登录可见的内容,甚至可以采集一些论坛回复才能看见的内容。设置 cookie 就行了。详细教程看这里 http://www.dxcer.com/guide/cookie.html

    2 、我不知道你说的什么前后端是啥。什么基于 linux 啥的,我听不懂。
    spice630
        25
    spice630  
       2017-01-13 00:27:51 +08:00
    @milu05163614
    1.手动登录?
    2 。。。。
    milu05163614
        26
    milu05163614  
    OP
       2017-01-13 00:30:03 +08:00
    @spice630 手动登录有什么问题吗?难道要大家输入账号密码,然后程序去登陆?想不通为啥需要这样做。
    spice630
        27
    spice630  
       2017-01-13 01:21:13 +08:00
    @milu05163614
    不会 被封?
    milu05163614
        28
    milu05163614  
    OP
       2017-01-13 01:26:47 +08:00
    @spice630 说实话。很少。不是很少,是没遇到过。一个网站不可能因为一个用户频繁访问而封掉这个账号。这样做,成本很高。程序上面得写程序检测,又不能误杀什么的。这么一套东西下来,很繁琐。
    至少我没有遇到这类情况。
    spice630
        29
    spice630  
       2017-01-13 01:34:29 +08:00
    @milu05163614 早点 睡觉~~~
    spice630
        30
    spice630  
       2017-01-13 08:21:18 +08:00 via iPhone
    @milu05163614
    有个问题 如果不能自动登录 那我每天要采集几十个网站的最新消息怎么办
    taolu729099134
        31
    taolu729099134  
       2017-01-13 10:54:44 +08:00
    同 15 楼 我的也出现乱码
    milu05163614
        32
    milu05163614  
    OP
       2017-01-13 13:17:41 +08:00
    @spice630 你采集什么网站,几十个都要登录才能看见内容。我接触过的采集需求,只有 5%左右需要登录可见。

    拷贝 cookie 进去采集,这个没什么麻烦的,只有这个办法。除非你有更好的办法。
    milu05163614
        33
    milu05163614  
    OP
       2017-01-13 13:54:52 +08:00
    @taolu729099134 用的啥解压软件
    v9ox
        34
    v9ox  
       2017-01-14 12:42:43 +08:00 via iPhone
    马克了

    很强大 明天就下载用用
    yivanus
        35
    yivanus  
       2017-01-14 14:34:15 +08:00
    @spice630 一旦涉及自动登录的话,就需要考虑验证码识别了。。。这又是一个大头了。
    milu05163614
        36
    milu05163614  
    OP
       2017-01-14 14:51:34 +08:00
    @yivanus 是的,首先产品会变得复杂了。你需要填用户名、密码、有时候还需要填其他东西,还得告诉程序,登陆成功的标志是什么,如果程序内置自己判断的话,后面的代码可想而知。

    从程序、产品上都是成本很高的东西。手动填 cookie 没什么问题,这是最简便成本最低的方式。
    yivanus
        37
    yivanus  
       2017-01-14 15:08:10 +08:00
    如果用户自己实现登录到时很简单的。用户名和密码 可以使用 lastpass 这类 浏览器插件 来帮忙完成。成本也就只在 复制 cookie 那一下。
    milu05163614
        38
    milu05163614  
    OP
       2017-01-14 15:41:27 +08:00
    @yivanus 目前软件的方式就是,用户自己在浏览器登录,然后复制 cookie 就可以采集登录可见的内容。
    这个过程很简单也没有什么技术门槛。除非有更好的方式。
    yivanus
        39
    yivanus  
       2017-01-14 15:50:22 +08:00
    @milu05163614 可以尝试 解决不需要 验证码那一类的网站,软件可否打开浏览器登录页,然后让 lastpass 这一类软件帮忙自动输入,然后登录,抓取 cookie ??

    或者可以通过分析 网页表单,让用户 设置用户名和密码之类,通过 js 直接提交完成登录,抓取 cookie 。
    milu05163614
        40
    milu05163614  
    OP
       2017-01-14 15:58:25 +08:00
    @yivanus 你现在还是觉得复制个 cookie 很麻烦?只需要用户在浏览器登录,然后软件自己就自动获取 cookie ,复制都不需要?还是什么,我没听明白。
    spice630
        41
    spice630  
       2017-01-14 16:03:51 +08:00
    @milu05163614
    是不是只需输入一次 ?只要采集软件不重启就不需要第二次输入?
    milu05163614
        42
    milu05163614  
    OP
       2017-01-14 16:06:18 +08:00
    @spice630 不需要再输入多次。就好比我登录这个论坛,这个论坛根据 cookie 判断我是否是登录状态。只要我把这个 cookie 给程序,程序就能代表我天天登录这个网站。这个网站也没叫你天天登录吧,说明 cookie 一般是长期有效的。
    milu05163614
        43
    milu05163614  
    OP
       2017-01-14 16:07:20 +08:00
    @milu05163614 软件即使重启,依然有效。就像你把浏览器关了,你再直接输入论坛网站,论坛不也照样认定你是已经登录状态吗?
    spice630
        44
    spice630  
       2017-01-14 16:11:43 +08:00
    @milu05163614
    那还好
    peneazy
        45
    peneazy  
       2017-01-15 06:34:12 +08:00 via Android
    支持一下,正需要这东西
    mingyun
        46
    mingyun  
       2017-01-15 10:09:02 +08:00   ❤️ 1
    cookie 来模拟登录时最简单的了,这个软件看起来很强大,下载用用
    yivanus
        47
    yivanus  
       2017-01-15 13:35:42 +08:00   ❤️ 1
    看了后面的讨论,感觉目前这样就可以了。登录那一块实在没必要花大功夫做。
    wtcoder
        48
    wtcoder  
       2017-01-16 01:47:59 +08:00
    话说 electron 开发的桌面应用,真的只能有这么大吗 - -
    milu05163614
        49
    milu05163614  
    OP
       2017-01-16 14:25:55 +08:00
    @wtcoder 只能有这么大,这意思是说软件太大,还是太小了。我没领会。
    wtcoder
        50
    wtcoder  
       2017-01-23 10:47:42 +08:00
    @milu05163614 太大了 :)
    wtcoder
        51
    wtcoder  
       2017-01-23 10:48:50 +08:00
    @milu05163614 我本来想用 electron 做点简单功能性桌面程序,现在改用 C#了还是~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3747 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:14 · PVG 08:14 · LAX 17:14 · JFK 20:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.