Show HN: वेबपेजों को Markdown में व्यवस्थित और कन्वर्ट करने वाला MarkdownDown
(markdowndown.vercel.app)- MarkdownDown किसी भी वेबपेज को साफ-सुथरे Markdown डॉक्यूमेंट में बदलने वाला टूल है
- कन्वर्ज़न रिज़ल्ट में image download को सपोर्ट करता है, जिससे लोकल में सेव की गई images को Markdown से लिंक किया जा सकता है
- non-content elements removal विकल्प से मुख्य सामग्री से असंबंधित elements को कम किया जा सकता है
- Markdown आउटपुट पर GPT Filter लागू करने का विकल्प भी देता है
- वेबपेज कंटेंट को Markdown के रूप में सेव करने या images के साथ व्यवस्थित करने की चाह रखने वाले यूज़र्स के लिए उपयोगी है
वेबपेजों को Markdown में व्यवस्थित करें
- MarkdownDown वेबपेजों को साफ-सुथरे Markdown में कन्वर्ट करता है
- कन्वर्ज़न के दौरान images डाउनलोड कर सकता है और रिज़ल्ट में local image links शामिल कर सकता है
कन्वर्ज़न विकल्प
-
मुख्य सामग्री पर केंद्रित सफाई
- Remove non-content elements विकल्प से गैर-कंटेंट elements हटाए जाते हैं
-
image processing
- Download images locally and link them विकल्प से images को लोकल में सेव करके लिंक किया जाता है
-
GPT Filter लागू करें
- Apply GPT Filter on Markdown विकल्प से Markdown रिज़ल्ट पर GPT Filter लागू किया जा सकता है
1 टिप्पणियां
Hacker News टिप्पणियाँ
वेबसाइट को Markdown में बदलने में तीन अलग समस्याएँ होती हैं: पेज कंटेंट को बिना कुछ छोड़े निकालना, विज्ञापन और अतिरिक्त कंटेंट हटाना, और सही लेआउट व सेक्शन फ़ॉर्मैट पाना
कंटेंट का सटीक extraction और formatting के लिए Trafilatura, Newspaper4k, और python-readability आधारित समाधान default state में सबसे अच्छा काम करते हैं, और बिना कुछ छोड़े संग्रह के लिए scraping services और Selenium का संयोजन अच्छा बैठता है
यह टूल क्या अलग करता है या बेहतर करता है, यह जानने की उत्सुकता है। इस क्षेत्र में काफ़ी समय से ठहराव था, इसलिए सीखी गई बातें सुनना चाहूँगा
कंटेंट extraction में Postlight library का तरीका काफ़ी साफ़-सुथरा था। यह हर HTML node को text length, link density, CSS class जैसी heuristics के आधार पर score देता है और सबसे ऊँचे score वाले node को चुनता है। एक personal read-later app बनाते समय मैंने इसे Swift में port भी किया था
https://github.com/postlight/parser
अगर जाँच fail हो जाए, तो पूरा page HTML context trim किया जाता है, Pandoc से Markdown में बदला जाता है, और फिर LLM Markdown से main body extract करता है
Vercel है, तो अब traffic बढ़े तो billing से सावधान रहना होगा। उम्मीद है कि आप इसे Vercel के उस लगातार उकसाने वाले तरीके से इस्तेमाल नहीं कर रहे होंगे
वही bus meme जैसा, खुश तरफ़ users और Vercel हैं, और दुखी तरफ़ wallet
हाँ, अगर dynamic scaling और shrinking चाहिए, तो बात अलग है
HN traffic संभालने के लिए मैंने अलग से कुछ नहीं किया, बस एक default Next.js app था
image download और GPT आधारित filtering देना एक अच्छा idea है
मैंने पिछले साल ऐसा ही एक tool बनाया था, लेकिन उसमें ये features नहीं हैं: https://url2text.com/
UI थोड़ा धीमा हो सकता है, लेकिन homepage पर example output देखा जा सकता है
underlying API, Urlbox का website screenshot API है, लेकिन सीधे इस्तेमाल करने पर performance काफ़ी बेहतर मिलती है। JavaScript-rendered HTML, metadata, screenshot और Markdown को एक साथ request किया जा सकता है: https://urlbox.com/extracting-text
result को सीधे S3-compatible storage में save भी किया जा सकता है: https://urlbox.com/s3
webhook के ज़रिए deliver भी कराया जा सकता है: https://urlbox.com/webhooks
मैं एक side project में Urlbox के Markdown feature से हर महीने 10 लाख से ज़्यादा render कर रहा हूँ, और ऐसा Markdown embeddings और prompts में इस्तेमाल करने के लिए काफ़ी बेहतर है
अगर पूरे website को इस तरह scrape करना हो, तो dctanner का नया tool भी देखने लायक है: https://usescraper.com/
यह प्रति page $0.001 है और headless Chrome browser इस्तेमाल करता है। result तेज़ आते हैं और जितना इस्तेमाल करो उतना ही भुगतान करना पड़ता है
अगर सिर्फ text चाहिए, तो यह काफ़ी महँगा लग सकता है
अगर वेबसाइट cookie message दिखाती है, तो लगता है यह tool वहीं अटक जाता है और असली content parse नहीं कर पाता
उदाहरण के लिए https://www.cnbc.com/ डालकर देखा, तो सिर्फ cookie message और उसके आसपास का legal text ही Markdown में बना
मैं खुशकिस्मत था कि इसे ऐसे mature API के ऊपर बना पाया, जो अलग-अलग तरह की page rendering से आने वाले कई edge cases पहले से संभालती है
सिर्फ htmltidy और Pandoc की HTML→Markdown conversion से भी काफ़ी उपयोगी result मिले
http://www.html-tidy.org/
https://pandoc.org/
मन हो रहा है कि पूरे final template HTML को इससे चलाकर बची हुई गलत structures ढूँढूँ, लेकिन थोड़ा डर भी लग रहा है। यह कितने structural fixes करता है, उस पर depend करेगा कि इसे test suite में बदला जा सकता है या नहीं
मैंने भी बहुत मिलता-जुलता smort.io बनाया है। किसी article URL के आगे
smort.io/जोड़ दें, तो उसे आसानी से edit, annotate और share किया जा सकता हैयह ArXiv papers पर भी काम करता है
Smort का Show HN पोस्ट यहाँ है: https://news.ycombinator.com/item?id=30673502
https://jina.ai/reader/
मैंने इसे एक complex marketing page पर आज़माया, और इसने बहुत अच्छा handle किया
अगर साझा कर सकें, तो जानना चाहूँगा कि host पर कितना load पड़ता है। क्या इसे लंबे समय तक free में चलाया जा सकता है, या आखिरकार cost efficiency खराब हो जाएगी?
बाकी GPT-4 महँगा है, लेकिन अभी तक लागत लगभग नगण्य रही है, इसलिए उम्मीद है। लगता है इसे लंबे समय तक बनाए रखा जा सकता है
यह उन मामलों में से एक है जहाँ AI की ज़रूरत नहीं है। पेज से content निकालने के लिए एक बहुत अच्छा काम करने वाला algorithm मौजूद है, और उसका एक implementation https://github.com/buriy/python-readability है
readability और कुछ दूसरी libraries भी इस्तेमाल की थीं। आजकल state of the art क्या है, यह जानने की जिज्ञासा है
यह मेरी इच्छा से कहीं ज़्यादा content हटा देता था
हमेशा चकित करने वाला Pandoc(https://pandoc.org/) इस तरह के काम में बहुत अच्छा है। यह practically लगभग हर दूसरे document format को भी support करता है
यह कमाल का है, इस्तेमाल में आसान है, और अच्छी तरह काम करता है। इस क्षेत्र में नए tools अक्सर आते रहते हैं, लेकिन मुझे Pandoc के अलावा कुछ और इस्तेमाल करने के लिए या तो सच में अनोखे और compelling features चाहिए होंगे, या किसी खास use case के लिए बहुत अधिक optimized होना पड़ेगा
बढ़िया। काश कोई browser extension होता जो मेरे पढ़े जाने वाले हर page पर इसे लागू करके कहीं store कर देता
https://github.com/deathau/markdown-clipper
ऐसे मिलते-जुलते alternative extensions शायद दर्जनों होंगे
https://omnivore.app/
संपादन: मैंने बहुत जल्दी पढ़ लिया था। automatic और systematic processing वाली बात मुझसे छूट गई थी