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

RSS404 - 为任何网站生成 RSS 地址[Demo]

  •  
  •   prasanta · 2022-03-12 11:25:42 +08:00 · 16515 次点击
    这是一个创建于 990 天前的主题,其中的信息可能已经有所发展或是发生改变。

    案例地址

    https://demo.rss404.com/?url=https%3A%2F%2Fwww.v2ex.com

    Demo 只提取前 20 个数据,加了请求锁,会比较慢。

    你可以尝试任何正常的列表页面(肉眼可以轻易判断主列表)。

    背景

    1. 搞了一个自动识别网页列表的算法,想把它应用起来。有开源的,但是效果不理想。
    2. 自动解析内容页的开源框架已经很多了,后期都可以集成起来。

    原理

    1. selenium 加载网页
    2. 机器学习视觉分类+NLP 分析解析列表页面的列表项,并提取出列表页的每一项

    讨论目的

    1. 这个项目还有哪些想象力?出了 RSS 之外?
    2. 是否有市场?
    3. 你作为用户想要什么?

    Screen Shot 2022-03-12 at 11.16.56 AM.png

    36 条回复    2022-04-06 14:05:25 +08:00
    ptsa
        1
    ptsa  
       2022-03-12 14:55:08 +08:00
    打不开
    prasanta
        2
    prasanta  
    OP
       2022-03-12 15:26:27 +08:00
    @ptsa 再试试呢 现在用内网穿透做的 demo
    tfdetang
        3
    tfdetang  
       2022-03-12 15:39:26 +08:00
    算法工程师?其实没有特别理解为何要视觉分类这一步,感觉会严重拖慢整体流程。 理论上用 html tag + word bag 或者 Tf-IDF 就已经能很好的分类了啊。

    我最近做过一个类似的,不过是从任意网页里提取结构化信息的,是公司的项目
    prasanta
        4
    prasanta  
    OP
       2022-03-12 15:54:03 +08:00
    @tfdetang

    我也发现了这个问题。
    最后也是希望能够从网站和 App 中自动提取结构化信息。如果用传统的分析方法,需要写很多逻辑处理 html ,未来也难以操作 app/doc/pdf 等其他类型的输入

    如果我能直接从截图中提取出结构化信息,那么我就不用关心输入是什么了,变成了和人眼一样的提取逻辑.

    人眼也是,先分类,看到这个页面是列表 /详情 /评论 /etc ,然后对应不同的类型,去寻找结构化信息的特征,比如价格,那么就寻找字体大点的,红点的,位置靠近商品标题的数字信息(比如这里还直接消除了字体反爬虫的问题)。
    Sailwww
        5
    Sailwww  
       2022-03-12 20:40:34 +08:00
    对我来说,主要需求不在于判断列表(因为高质量信息源有限,而且需要特殊处理的终究是少数),而在于把文档型的数据比较完美的解析出来,所以希望用机器学习做一下这个;另外比较好奇视觉分类用的是 resnet 吗?大概多少层的网络,QPS 之类的数据或者训练过程不知道方便透露吗,我其实很想用深度学习做一些相关的事情,一直是在学术数据集上做实验,想试试自己落地一些应用。
    xiaozizayang
        6
    xiaozizayang  
       2022-03-12 21:47:28 +08:00
    我最近业余也在做这个工作,为任何网站提取列表项数据生成 rss
    prasanta
        7
    prasanta  
    OP
       2022-03-13 00:15:04 +08:00
    @xiaozizayang 等我找你沟通一波
    prasanta
        8
    prasanta  
    OP
       2022-03-13 00:16:41 +08:00
    @Sailwww 文字区块的位置,字体大小粗细长短,作为特征 /etc ,普通分类即可。
    abersheeran
        9
    abersheeran  
       2022-03-13 12:29:14 +08:00
    Sailwww
        10
    Sailwww  
       2022-03-13 12:31:18 +08:00
    @prasanta 你这样一说就是没用上图像啊...看样子就是特征分类,没用到深度模型看起来?另外这个和 RSSHub 的主要区别在?感觉 RSSHub 通过类似众筹的方式匹配规则已经很完善了
    hackpro
        11
    hackpro  
       2022-03-13 14:24:48 +08:00 via iPhone
    很棒 速度上可以优化下吗 感觉要等好久😂😂
    prasanta
        12
    prasanta  
    OP
       2022-03-13 14:31:55 +08:00
    @Sailwww 和 RSSHub 的区别就是不需要人维护了。
    prasanta
        13
    prasanta  
    OP
       2022-03-13 14:33:06 +08:00
    @hackpro Demo 确实比较慢,但是最后的逻辑不会是实时解析。最后的方案是,定时解析后写入缓存即可,调用 rss 链接直接从缓存中取数据。
    prasanta
        14
    prasanta  
    OP
       2022-03-13 14:34:22 +08:00
    @abersheeran 这不是最后的效果,最后调用端的感知是<100ms 的,因为会直接取缓存
    ClarkAbe
        15
    ClarkAbe  
       2022-03-13 15:32:43 +08:00
    可以.....开源了踢我一脚
    prasanta
        16
    prasanta  
    OP
       2022-03-13 16:07:09 +08:00
    @ClarkAbe 对这个东东有什么建议吗?
    ClarkAbe
        17
    ClarkAbe  
       2022-03-13 19:14:12 +08:00
    @prasanta 应该没有......部署单二进制不知道算不算.....
    prasanta
        18
    prasanta  
    OP
       2022-03-14 08:57:00 +08:00
    更新了主页和优化了对英文的兼容
    tfdetang
        19
    tfdetang  
       2022-03-14 10:23:25 +08:00
    @prasanta 用视觉的方式直接进行提取固然是最端到端的解决方案,但是实现层面上确实有些难的。 其实我的思路是用页面的 xpath 信息作为页面文本的额外特征,这样也能实现类似于人眼对于页面结构的识别。 目测效果还可以,但是还没设计严谨的实验来验证效果提升
    prasanta
        20
    prasanta  
    OP
       2022-03-14 13:29:44 +08:00
    @tfdetang

    目前我这个算法最重要的东西是 getComputedStyle. 总的逻辑也是最后生成 xpath.
    saimax
        21
    saimax  
       2022-03-15 11:20:04 +08:00
    这个太 6 了~ 很多动态页面 feed43 无法制作的 可以用这个了~ 不知道会不会长期稳定提供服务啊?

    然后 还有一些页面,无法解析好像
    比如:
    http://cpa.sf.gov.cn/gztz1/qtgz.htm
    prasanta
        22
    prasanta  
    OP
       2022-03-15 14:55:30 +08:00
    @saimax 这个网站监测了 headless 浏览器导致的,这是可以解决的。

    是有长期提供服务的打算,不过目前只在 V2EX 和 hackernews 发了两个帖子,想先看看反响。因为 rss 的用户群体还是太小。目前纯 demo 阶段会慢慢修复很多问题。

    后面我会把格局改大一点,“自动转 rss” 改为 “自动抽取结构化数据”
    prasanta
        23
    prasanta  
    OP
       2022-03-15 15:12:11 +08:00   ❤️ 1
    @saimax 修复了
    Bravoios
        24
    Bravoios  
       2022-03-16 09:46:00 +08:00
    很棒,支持一下,很需要这样的解析项目
    prasanta
        25
    prasanta  
    OP
       2022-03-16 13:08:47 +08:00
    @Bravoios 谢谢!希望能收到大家的建议和意见
    tmkook
        26
    tmkook  
       2022-03-17 17:15:18 +08:00
    https://github.com/tmkook/easyhtml
    用 PHP 写过类似的
    prasanta
        27
    prasanta  
    OP
       2022-03-18 13:22:13 +08:00
    @tmkook 谢谢分享,刚刚简单浏览了一下源码,部分思路很像!
    prasanta
        28
    prasanta  
    OP
       2022-03-18 13:26:14 +08:00
    哪位大哥在测试黄色网站?别啊
    snipersteve
        29
    snipersteve  
       2022-03-20 16:17:58 +08:00 via Android
    有一些网站存在 url 拼接的问题,可以进一步优化一下。比如 https://demo.rss404.com/feed?url=https%3A%2F%2Fwww.samr.gov.cn%2Ffldj%2Fajgs%2F
    prasanta
        30
    prasanta  
    OP
       2022-03-20 18:26:12 +08:00
    @snipersteve 多谢反馈,已修复
    snipersteve
        31
    snipersteve  
       2022-03-20 19:45:00 +08:00 via Android
    @prasanta 神速
    prasanta
        32
    prasanta  
    OP
       2022-03-20 21:40:06 +08:00
    @snipersteve 刚好看到了。。。
    snipersteve
        33
    snipersteve  
       2022-03-20 22:46:13 +08:00 via Android
    @prasanta 有可能给个自己部署的方案吗?
    saimax
        34
    saimax  
       2022-03-22 16:45:34 +08:00
    @snipersteve
    同问
    WangGuanJingJi
        35
    WangGuanJingJi  
       2022-04-06 12:03:41 +08:00
    页面打不开了
    prasanta
        36
    prasanta  
    OP
       2022-04-06 14:05:25 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5798 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:39 · PVG 09:39 · LAX 17:39 · JFK 20:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.