[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"project-27739568":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":44,"post_text":47,"what":48,"said":89,"maker_in_thread":175,"shape":188,"grid":191,"attempts":524,"same_week":525,"maker_shows":45,"maker_hidden":553,"reader_version":554,"card":555},"27739568","Feed Me Up Scotty","RSS feeds for arbitrary websites using CSS selectors","title","Show HN: RSS feeds for arbitrary websites using CSS selectors","https:\u002F\u002Ffeed-me-up-scotty.vincenttunru.com\u002F","feed-me-up-scotty.vincenttunru.com","Vinnl",1625502482,2021,509,127,42,2533,2,"legend","productivity","feed reader tooling","other",[24,25,26,27],"rss","css selectors","feed generator","web scraping","curious",0.075,{"positive":31,"neutral":32,"mixed":33,"critical":34},10,25,1,12,48,{"idea":37,"docs":40,"execution":42,"design":43},{"positive":38,"critical":39},7,8,{"positive":18,"critical":41},0,{"positive":33,"critical":18},{"positive":41,"critical":18},[41,41,41,45,45,45,46,41,46,45,41,45,45,46,41,33,45,45,33,45,46,46,46,45,33,33,33,33,41,33,41,33,33,45,45,45,41,41,41,41],3,5,null,{"problem":49,"audience":59,"pricing":47,"motivation":65,"time_to_build":47,"stack":71,"openness":86,"stage":87,"team_size":88},{"value":50,"source":51,"evidence":52},"Websites without RSS feeds make it hard to follow updates in a feed reader","maker",[53,56],{"id":54,"by":11,"text":55},"27740700","If you have a less brittle alternative that allows me to get the latest real estate listings in my area in my feed reader before it hits the aggregator sites, I'm all ears!",{"id":57,"by":11,"text":58},"27740499","Ideally sites would just publish RSS feeds themselves, but not all of them do — let alone an API…",{"value":60,"source":51,"evidence":61},"People who know CSS and want feeds from sites lacking them",[62],{"id":63,"by":11,"text":64},"27740825","Ah that's fine, this is explicitly not a tool for the masses. The problem I had with tools like the ones you describe are that either they just use string matching, or the…",{"value":66,"source":51,"evidence":67},"Needed feeds for Dutch real estate listings before they reached aggregators",[68],{"id":69,"by":11,"text":70},"27740220","The User Agent trick is a good one that I should've tried, but I just checked and it didn't work for this one. Parsing actual JSON wasn't really an option, as I wanted to be able…",[72,78],{"value":73,"source":51,"evidence":74},"Playwright",[75],{"id":76,"by":11,"text":77},"27739798","Thanks. I initially used a regular HTML parser as well, but I quickly ran into sites that wouldn't render without JavaScript. I'm therefore now using a regular browser controlled…",{"value":79,"source":80,"evidence":81},"GitHub Actions","inferred",[82],{"id":83,"by":84,"text":85},"27742153","onli","I'd say the novel part of the project is the Github actions\u002FGitlab CI integration. I haven't seen that used for RSS generation yet. That the selectors are stored in a config file…","open_source","launched","solo",{"praise":90,"objections":103,"requests":123,"questions":138,"alternatives":146},[91],{"value":92,"source":93,"evidence":94},"Useful simple plumbing tool with good documentation","commenter",[95,99],{"id":96,"by":97,"text":98},"27739597","spicybright","I very simple plumbing tools like these.",{"id":100,"by":101,"text":102},"27740010","0des","Woah this is cool! What you did with the setup documentation and the bit about automation was a nice touch, I wish more projects had this attention to the detail. Very simple,…",[104,114],{"value":105,"source":93,"evidence":106},"Scraping via CSS selectors is brittle and breaks on site changes",[107,111],{"id":108,"by":109,"text":110},"27740388","ricardo81","Nice, but it's essentially scraping? Scraping is brittle. Some design changes and the whole thing breaks. Maintenance nightmare.",{"id":112,"by":109,"text":113},"27740459","Not sure for the downvote reason. Like I say scraping is brittle. I've done hundreds of scraping projects in the past. A recent one was taking 50 shopping sites looking for what…",{"value":115,"source":93,"evidence":116},"Not novel, scraping has existed for decades",[117,120],{"id":118,"by":109,"text":119},"27740548","Indeed, but the scraping workaround is brittle. We could make rules for all sites on the web that don't have a feed or API but it's not all that manageable. It also begs the…",{"id":121,"by":109,"text":122},"27741048","Yes, if you're determined enough you can scrape anything. Just not sure what the new thing here is.",[124,131],{"value":125,"source":93,"evidence":126},"Fix relative links inside feed contents",[127],{"id":128,"by":129,"text":130},"27739982","moehm","FYI, the links inside your feeds don't work, because they are relative, not absolute.",{"value":132,"source":93,"evidence":133},"Add a snippet or rendered preview of the XML",[134],{"id":135,"by":136,"text":137},"27739770","bellyfullofbac","I wish there's a snippet of what the XML looks like, even better if it's \"rendered\"...",[139],{"value":140,"source":93,"evidence":141},"How to get the GitHub Pages workflow running",[142],{"id":143,"by":144,"text":145},"27741100","spacec0wb0y","What do I do to get this working? So far I've forked feeds, edited feeds.toml, checked it out as a branch gh-pages, pushed the branch up to github. I can see the page at…",[147,154,161,168],{"value":148,"source":93,"evidence":149},"RSSHub",[150],{"id":151,"by":152,"text":153},"27741043","alanchen","Related: https:\u002F\u002Fgithub.com\u002FDIYgod\u002FRSSHub This perhaps has more flexibility and can deal with almost any website.",{"value":155,"source":93,"evidence":156},"rss.app",[157],{"id":158,"by":159,"text":160},"27741184","ianberdin","My friend is working on a quite simple feed generator from any website, social media: https:\u002F\u002Frss.app. Maybe helpful.",{"value":162,"source":93,"evidence":163},"Feed Creator (fivefilters)",[164],{"id":165,"by":166,"text":167},"27739902","k1m","Very nice! I work on Feed Creator - https:\u002F\u002Fcreatefeed.fivefilters.org - which is similar, although unlike yours doesn't use a headless browser, so selecting Javacript-inserted…",{"value":169,"source":93,"evidence":170},"HungryHippo",[171],{"id":172,"by":173,"text":174},"27743682","DeLopSpot","It seems that RSS feed generators are a bit like static site generators: it's often thought to be easier to make your own than to learn to use someone else's. Anyway, here's…",{"comments":176,"answered":177,"key":178},19,4,[179,182,185],{"id":180,"text":181},"27744940","I mean, it's exactly like a static site generator — I'd call it JAMstack, except the \"API\" is a plain HTML page and the markup is RSS :) So yeah, definitely straightforward…",{"id":183,"text":184},"27746932","There already is such a standard! https:\u002F\u002Fmicroformats.org\u002Fwiki\u002Fhatom Happy to take a merge request that adds the option to set `extends = \"sfeed\"` or `extends = \"hatom\"` and…",{"id":186,"text":187},"27747316","Ah thanks - been out of that world for a long time now.",{"commenters":189,"max_depth":31,"maker_replies":176,"first_comment_mins":45,"lifespan_hours":190},70,195,[192,194,195,198,201,203,207,209,211,213,216,219,222,223,226,229,232,235,238,241,244,246,249,252,255,257,260,263,267,270,274,276,279,281,283,287,291,294,297,299,302,306,309,312,315,319,322,324,326,328,332,336,338,340,342,345,346,348,351,353,355,357,359,361,364,368,371,373,375,378,380,382,385,388,392,396,398,400,404,408,411,414,417,419,421,422,423,424,427,428,430,431,433,437,440,444,447,449,452,454,456,458,461,462,464,466,467,470,473,476,479,481,485,489,491,493,496,499,502,504,506,508,510,512,515,518,521],[172,41,41,193,173,41],"other\u002Fneutral\u002Fidea",[180,41,41,193,11,33],[196,41,41,193,197,41],"27745924","lucideer",[199,41,41,193,200,41],"27746837","askhan",[183,41,41,202,11,33],"maker\u002Fneutral\u002Fidea",[204,41,41,205,206,41],"27746951","other\u002Fneutral\u002Fnone","detaro",[208,41,41,205,200,41],"27747037",[186,41,41,210,11,33],"commenter\u002Fneutral\u002Fnone",[212,41,41,205,200,41],"27746970",[214,41,41,193,215,41],"27769301","pedro1976",[217,41,41,205,218,41],"27778633","niutech",[220,41,45,221,215,41],"27751458","project\u002Fneutral\u002Fidea",[165,33,45,221,166,41],[224,33,41,225,11,33],"27739963","project\u002Fpositive\u002Fidea",[227,33,41,205,228,41],"27740024","axiolite",[230,33,45,231,166,41],"27740147","project\u002Fneutral\u002Fdocs",[233,33,45,221,234,41],"27741798","fran-penedo",[236,33,45,221,237,41],"27743101","jepler",[239,18,45,221,240,41],"27742611","kdbg",[242,45,46,225,243,41],"27741614","remram",[245,45,41,221,11,33],"27741725",[247,45,45,221,248,41],"27741906","contingencies",[250,45,41,210,251,41],"27743400","toastal",[253,45,41,210,254,41],"27743888","judge2020",[256,45,41,210,251,41],"27747446",[258,45,46,225,259,41],"27747419","specialist",[261,177,46,225,262,41],"27740327","lorey",[264,177,46,265,266,41],"27740621","project\u002Fpositive\u002Fexecution","clickok",[268,177,45,269,262,41],"27781846","maker\u002Fneutral\u002Fnone",[271,177,45,272,273,41],"27742386","project\u002Fneutral\u002Fnone","kwerk",[275,177,45,269,262,41],"27781840",[277,46,41,193,278,41],"27743631","earthboundkid",[280,46,41,205,278,41],"27743641",[158,282,41,193,159,41],6,[284,282,41,285,286,41],"27743480","other\u002Fcritical\u002Fpricing","pwrplus1",[288,282,41,289,290,41],"27775916","other\u002Fmixed\u002Fpricing","goleary",[292,38,45,221,293,41],"27742698","peanutz454",[295,38,41,205,296,41],"27742738","VoidWhisperer",[298,38,45,221,166,41],"27742806",[300,39,41,193,301,41],"27743434","dugite-code",[303,304,41,205,305,41],"27740581",9,"pacman2",[307,304,41,205,308,41],"27743836","nreece",[310,304,41,311,305,41],"27751626","other\u002Fneutral\u002Fpricing",[313,31,46,225,314,41],"27751173","bjoli",[316,317,41,205,318,41],"27740992",11,"canada_dry",[320,317,41,205,321,41],"27741037","hallway_monitor",[323,317,41,205,318,41],"27741087",[325,317,41,205,11,33],"27741174",[327,317,41,205,11,33],"27741191",[329,34,33,330,331,41],"27782559","project\u002Fcritical\u002Fidea","qwerty456127",[333,334,45,221,335,41],"27739750",13,"rcarmo",[76,334,41,337,11,33],"maker\u002Fneutral\u002Fexecution",[339,334,41,210,228,41],"27740071",[341,334,41,210,129,41],"27740165",[343,334,41,210,344,41],"27740205","chrismorgan",[69,334,41,337,11,33],[135,347,45,231,136,41],14,[349,347,41,350,11,33],"27739791","maker\u002Fneutral\u002Fdocs",[128,347,33,352,129,41],"project\u002Fcritical\u002Fexecution",[354,347,41,337,11,33],"27740026",[356,347,45,337,344,41],"27740143",[358,347,41,337,11,33],"27740247",[360,347,45,337,344,41],"27740371",[362,347,41,363,11,33],"27740442","maker\u002Fpositive\u002Fexecution",[365,366,45,221,367,41],"27741953",15,"mhitza",[100,369,46,370,101,41],16,"maker\u002Fpositive\u002Fdocs",[143,372,45,231,144,41],17,[374,372,41,350,11,33],"27741300",[376,372,46,377,144,41],"27741449","project\u002Fpositive\u002Fdocs",[96,379,46,225,97,41],18,[381,379,45,221,251,41],"27740367",[383,379,41,205,384,41],"27740400","vhodges",[386,176,41,205,387,41],"27825117","ossusermivami",[389,390,41,205,391,41],"27783731",20,"galambo",[393,394,45,221,395,41],"27740152",21,"colordrops",[397,394,41,272,11,33],"27740258",[151,399,33,330,152,41],22,[401,402,41,205,403,41],"27743796",23,"shadowbanned69",[405,406,45,221,407,41],"27744375",24,"flowerlad",[409,406,33,330,410,41],"27744591","asdff",[412,406,41,205,413,41],"27744873","tgel0",[415,32,45,272,416,41],"27776424","jazzdev",[418,32,45,272,416,41],"27776603",[108,420,33,330,109,41],26,[112,420,33,330,109,41],[57,420,41,221,11,33],[118,420,33,330,109,41],[425,420,41,210,426,41],"27740653","eyedontgetit",[54,420,41,221,11,33],[429,420,41,210,109,41],"27740755",[63,420,41,221,11,33],[432,420,41,205,109,41],"27740890",[434,420,41,435,436,41],"27740586","commenter\u002Fneutral\u002Fidea","bscphil",[438,420,33,439,109,41],"27740643","project\u002Fcritical\u002Fdesign",[441,420,45,442,443,41],"27741317","project\u002Fneutral\u002Fexecution","cromka",[445,420,41,210,446,41],"27741852","z3c0",[448,420,41,210,109,41],"27741869",[450,420,41,210,451,41],"27740672","kortilla",[453,420,41,210,109,41],"27740684",[455,420,41,210,129,41],"27740749",[457,420,33,352,109,41],"27740838",[459,420,41,210,460,41],"27740974","playpause",[121,420,33,330,109,41],[463,420,41,210,206,41],"27741116",[465,420,33,330,109,41],"27741603",[83,420,46,225,84,41],[468,420,45,469,129,41],"27740983","project\u002Fmixed\u002Fexecution",[471,420,45,442,472,41],"27740831","lhnz",[474,420,41,210,475,41],"27741947","KirillPanov",[477,420,41,210,478,41],"27741978","DoreenMichele",[480,420,41,210,475,41],"27742011",[482,483,46,225,484,41],"27741710",27,"cyborgx7",[486,487,33,439,488,41],"27741190",28,"markdown",[490,487,41,269,11,33],"27741329",[492,487,41,210,488,41],"27742549",[494,495,41,205,344,41],"27740168",29,[497,495,41,205,498,41],"27740198","nvr219",[500,495,41,205,501,41],"27746262","slightwinder",[503,495,41,205,129,41],"27740212",[505,495,41,205,344,41],"27740225",[507,495,41,210,436,41],"27740619",[509,495,41,210,501,41],"27746337",[511,495,41,210,436,41],"27766026",[513,495,41,210,514,41],"27743778","justshowpost",[516,495,41,210,517,41],"27740673","pmlnr",[519,495,41,210,520,41],"27741236","alanfranz",[522,495,41,210,523,41],"27747194","account42",[],[526,531,536,541,545,549],{"id":527,"name":528,"points":529,"category":530},"27749497","Side Quest",401,"web_saas",{"id":532,"name":533,"points":534,"category":535},"27710948","Napkin",158,"infrastructure",{"id":537,"name":538,"points":539,"category":540},"27738232","Lego Brick Scanner",154,"ai",{"id":542,"name":543,"points":544,"category":20},"27697286","Less Addictive YouTube",140,{"id":546,"name":547,"points":544,"category":548},"27731787","acid-tabs-extension","dev_tools",{"id":550,"name":551,"points":552,"category":530},"27698322","VisaWhen",104,false,"v2",{"id":556,"name":5,"line":6,"ai":553,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":557,"top":18,"kw":558,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":559,"url":9,"mix":560,"praise":92,"objection":105,"sub":21},27739568,0.08,[24,25,26,27],"0003335053033501331355531111010113330000",[31,32,33,34],1794036608689]