[{"data":1,"prerenderedAt":196},["ShallowReactive",2],{"project-9644518":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":33,"aspects":34,"strip":38,"post_text":41,"what":42,"said":92,"maker_in_thread":131,"shape":133,"grid":136,"attempts":151,"same_week":159,"maker_shows":188,"maker_hidden":189,"reader_version":190,"card":191},"9644518","webinspector","Ruby gem to scrape a web page","title","Show HN: Ruby gem to scrape a web page","https:\u002F\u002Fgithub.com\u002Fdavidesantangelo\u002Fwebinspector","github.com","daviducolo",1433231958,2015,27,8,988,2565,39,"shown","languages","ruby gem for web scraping","library",[24,25,26,27],"ruby gem","web scraping","html parsing","faraday","curious",0,{"positive":31,"neutral":32,"mixed":29,"critical":31},1,4,6,{"idea":35,"design":36,"performance":37},{"positive":29,"critical":29},{"positive":31,"critical":31},{"positive":29,"critical":29},[39,29,29,31,39,40,39,39],3,5,null,{"problem":43,"audience":41,"pricing":41,"motivation":55,"time_to_build":41,"stack":60,"openness":91,"stage":91,"team_size":91},{"value":44,"source":45,"evidence":46},"Scraping data from web pages in Ruby with a simpler interface","commenter",[47,51],{"id":48,"by":49,"text":50},"9645944","superplussed","The chance that he never heard of Mechanize is approximately 0.",{"id":52,"by":53,"text":54},"9646034","nathan_f77","True, I checked his profile and he seems like a very experienced web developer. I guess he wanted to make something that was a little bit easier to use for simple web scraping.",{"value":56,"source":57,"evidence":58},"Make web scraping easier to use for simple cases","inferred",[59],{"id":52,"by":53,"text":54},[61,66,77,84],{"value":62,"source":57,"evidence":63},"Ruby",[64],{"id":65},"post",{"value":67,"source":45,"evidence":68},"Faraday",[69,73],{"id":70,"by":71,"text":72},"9646612","mjands","Similar gem that scrapes OGP and oEmbed tags as well as HTML tags. Also configured using Faraday and allows for serialization\u002Fdeserialization of underlying data:…",{"id":74,"by":75,"text":76},"9646006","purephase","Always nice to have alternative. Mechanize is certainly the big player in this space, but I like the use of faraday here. Thanks for sharing.",{"value":78,"source":45,"evidence":79},"Net::HTTP",[80],{"id":81,"by":82,"text":83},"9646084","JustinAiken","Looks like net:Http -> https:\u002F\u002Fgithub.com\u002Fdavidesantangelo\u002Fwebinspector\u002Fblob\u002Fmaster\u002Flib\u002Fweb_inspector\u002Fpage.rb#L95 Would be easy enough to swap out if you prefer something else…",{"value":85,"source":45,"evidence":86},"Nokogiri",[87],{"id":88,"by":89,"text":90},"9646030","mapgrep","I was surprised there's no way to query the page beyond the small list of element accessors you provide (body, url, scheme, host, port, title, description, links, images, meta).…","unknown",{"praise":93,"objections":98,"requests":110,"questions":115,"alternatives":120},[94],{"value":95,"source":45,"evidence":96},"Useful alternative to Mechanize, good use of Faraday",[97],{"id":74,"by":75,"text":76},[99,103],{"value":100,"source":45,"evidence":101},"No way to query the page beyond the fixed accessors",[102],{"id":88,"by":89,"text":90},{"value":104,"source":45,"evidence":105},"Unclear which underlying HTTP library is used",[106],{"id":107,"by":108,"text":109},"9646064","AznHisoka","What does this use underneath? I wouldn't use it unless I know whether it uses libcurl or something else.",[111],{"value":112,"source":45,"evidence":113},"Provide an escape hatch to underlying Nokogiri data or selectors",[114],{"id":88,"by":89,"text":90},[116],{"value":117,"source":45,"evidence":118},"Does it use libcurl or another HTTP library underneath",[119],{"id":107,"by":108,"text":109},[121,127],{"value":122,"source":45,"evidence":123},"Mechanize",[124],{"id":125,"by":53,"text":126},"9645162","Good work, but you might not have heard about Mechanize: https:\u002F\u002Fgithub.com\u002Fsparklemotion\u002Fmechanize",{"value":128,"source":45,"evidence":129},"link_preview",[130],{"id":70,"by":71,"text":72},{"comments":29,"answered":29,"key":132},[],{"commenters":134,"max_depth":39,"maker_replies":29,"first_comment_mins":135,"lifespan_hours":15},7,213,[137,139,141,142,144,146,148,150],[125,29,39,138,53,29],"project\u002Fneutral\u002Fidea",[48,29,29,140,49,29],"commenter\u002Fneutral\u002Fnone",[52,29,29,140,53,29],[88,31,31,143,89,29],"project\u002Fcritical\u002Fdesign",[70,145,39,138,71,29],2,[74,39,40,147,75,29],"project\u002Fpositive\u002Fdesign",[107,32,39,149,108,29],"project\u002Fneutral\u002Fperformance",[81,32,39,149,82,29],[152,153,156],{"id":4,"t":12,"points":14,"comments":15},{"id":154,"t":155,"points":145,"comments":29},"13165437",1481618352,{"id":157,"t":158,"points":145,"comments":29},"22535951",1583852142,[160,165,169,174,179,183],{"id":161,"name":162,"points":163,"category":164},"9624673","Percy.io",249,"dev_tools",{"id":166,"name":167,"points":168,"category":164},"9643579","Diff.io",194,{"id":170,"name":171,"points":172,"category":173},"9652367","Green Cards explorer (jobsintech)",173,"data",{"id":175,"name":176,"points":177,"category":178},"9635037","Karplus-Strong Guitar Synthesizer",171,"creative",{"id":180,"name":181,"points":177,"category":182},"9654091","Differential Equations Explained","learning_science",{"id":184,"name":185,"points":186,"category":187},"9624043","Startup Developer Jobs",150,"web_saas",13,false,"v2",{"id":192,"name":5,"line":6,"ai":189,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":193,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":194,"url":9,"mix":195,"praise":95,"objection":100,"sub":21},9644518,[24,25,26,27],"30013533",[31,32,29,31],1794036531884]