RSS404 - 为任何网站生成 RSS 地址[Demo] - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
prasanta
V2EX    分享创造

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

  •  
  •   prasanta 2022 年 3 月 12 日 17145 次点击
    这是一个创建于 1414 天前的主题,其中的信息可能已经有所发展或是发生改变。

    案例地址

    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 年 3 月 12 日
    打不开
    prasanta
        2
    prasanta  
    OP
       2022 年 3 月 12 日
    @ptsa 再试试呢 现在用内网穿透做的 demo
    tfdetang
        3
    tfdetang  
       2022 年 3 月 12 日
    算法工程师?其实没有特别理解为何要视觉分类这一步,感觉会严重拖慢整体流程。 理论上用 html tag + word bag 或者 Tf-IDF 就已经能很好的分类了啊。

    我最近做过一个类似的,不过是从任意网页里提取结构化信息的,是公司的项目
    prasanta
        4
    prasanta  
    OP
       2022 年 3 月 12 日
    @tfdetang

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

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

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

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

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

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

    后面我会把格局改大一点,“自动转 rss” 改为 “自动抽取结构化数据”
    prasanta
        23
    prasanta  
    OP
       2022 年 3 月 15 日   1
    @saimax 修复了
    Bravoios
        24
    Bravoios  
       2022 年 3 月 16 日
    很棒,支持一下,很需要这样的解析项目
    prasanta
        25
    prasanta  
    OP
       2022 年 3 月 16 日
    @Bravoios 谢谢!希望能收到大家的建议和意见
    tmkook
        26
    tmkook  
    PRO
       2022 年 3 月 17 日
    https://github.com/tmkook/easyhtml
    用 PHP 写过类似的
    prasanta
        27
    prasanta  
    OP
       2022 年 3 月 18 日
    @tmkook 谢谢分享,刚刚简单浏览了一下源码,部分思路很像!
    prasanta
        28
    prasanta  
    OP
       2022 年 3 月 18 日
    哪位大哥在测试黄色网站?别啊
    snipersteve
        29
    snipersteve  
       2022 年 3 月 20 日 via Android
    有一些网站存在 url 拼接的问题,可以进一步优化一下。比如 https://demo.rss404.com/feed?url=https%3A%2F%2Fwww.samr.gov.cn%2Ffldj%2Fajgs%2F
    prasanta
        30
    prasanta  
    OP
       2022 年 3 月 20 日
    @snipersteve 多谢反馈,已修复
    snipersteve
        31
    snipersteve  
       2022 年 3 月 20 日 via Android
    @prasanta 神速
    prasanta
        32
    prasanta  
    OP
       2022 年 3 月 20 日
    @snipersteve 刚好看到了。。。
    snipersteve
        33
    snipersteve  
       2022 年 3 月 20 日 via Android
    @prasanta 有可能给个自己部署的方案吗?
    saimax
        34
    saimax  
       2022 年 3 月 22 日
    @snipersteve
    同问
    WangGuanJingJi
        35
    WangGuanJingJi  
       2022 年 4 月 6 日
    页面打不开了
    prasanta
        36
    prasanta  
    OP
       2022 年 4 月 6 日
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     861 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:25 PVG 05:25 LAX 13:25 JFK 16:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86