Show HN: MarkdownDown เครื่องมือจัดระเบียบและแปลงหน้าเว็บเป็น Markdown
(markdowndown.vercel.app)- MarkdownDown เป็นเครื่องมือที่เปลี่ยนหน้าเว็บใด ๆ ให้เป็นเอกสาร Markdown ที่สะอาดเรียบร้อย
- รองรับการ ดาวน์โหลดรูปภาพ ในผลลัพธ์การแปลง ทำให้สามารถเชื่อมโยงรูปภาพที่บันทึกไว้ในเครื่องกับ Markdown ได้
- ตัวเลือก ลบองค์ประกอบที่ไม่ใช่เนื้อหา ช่วยลดองค์ประกอบที่ไม่เกี่ยวข้องกับเนื้อหาหลักได้
- มีตัวเลือกให้ใช้ GPT Filter กับผลลัพธ์ Markdown ด้วย
- มีประโยชน์สำหรับผู้ใช้ที่ต้องการเก็บเนื้อหาหน้าเว็บเป็น Markdown หรือจัดระเบียบพร้อมรูปภาพไปด้วย
จัดระเบียบหน้าเว็บเป็น Markdown
- MarkdownDown แปลงหน้าเว็บให้เป็น Markdown ที่สะอาดเรียบร้อย
- ระหว่างการแปลง สามารถดาวน์โหลดรูปภาพและใส่ลิงก์รูปภาพในเครื่องลงในผลลัพธ์ได้
ตัวเลือกการแปลง
-
จัดระเบียบโดยเน้นเนื้อหาหลัก
- ตัวเลือก Remove non-content elements ใช้ลบองค์ประกอบที่ไม่ใช่เนื้อหา
-
การจัดการรูปภาพ
- ตัวเลือก Download images locally and link them ใช้บันทึกรูปภาพไว้ในเครื่องและเชื่อมโยงลิงก์
-
ใช้ GPT Filter
- ตัวเลือก Apply GPT Filter on Markdown สามารถใช้ GPT Filter กับผลลัพธ์ Markdown ได้
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
การแปลงเว็บไซต์เป็น Markdown มีปัญหาที่แตกต่างกันอยู่สามอย่าง: การดึงเนื้อหาของหน้าให้ครบถ้วน, การตัดโฆษณาและเนื้อหาเสริมออก, และการได้เลย์เอาต์กับรูปแบบของแต่ละส่วนที่ถูกต้อง
สำหรับ การสกัดเนื้อหาอย่างแม่นยำ และการจัดรูปแบบ โซลูชันที่ใช้ Trafilatura, Newspaper4k, python-readability ทำงานได้ดีที่สุดในค่าเริ่มต้น ส่วนการเก็บให้ครบถ้วนเหมาะกับการใช้บริการ scraping ร่วมกับ Selenium
อยากรู้ว่าเครื่องมือนี้ทำอะไรต่างออกไปหรือดีกว่าอย่างไร วงการนี้หยุดนิ่งมาสักพักแล้ว เลยอยากฟังสิ่งที่ได้เรียนรู้
ในการสกัดเนื้อหา วิธีของไลบรารี Postlight ค่อนข้างเรียบร้อยดี คือให้คะแนนแต่ละ HTML node ด้วย heuristic เช่น ความยาวข้อความ ความหนาแน่นของลิงก์ และ CSS class แล้วเลือก node ที่ได้คะแนนสูงสุด เคยลองพอร์ตเป็น Swift ตอนทำแอปอ่านทีหลังส่วนตัว
https://github.com/postlight/parser
ถ้าตรวจไม่ผ่าน ก็จะตัดบริบท HTML ของทั้งหน้าออกมา แปลงเป็น Markdown ด้วย Pandoc แล้วให้ LLM สกัดเนื้อหาหลักจาก Markdown อีกที
ใช้ Vercel เหรอ ถ้าทราฟฟิกถาโถมเข้ามาก็คงต้องระวังบิลแล้วล่ะ หวังว่าจะไม่ได้ใช้งานตามแบบที่ Vercel คอยกระตุ้นให้ใช้ต่อไปเรื่อย ๆ
ตามมีมรถบัสเป๊ะ ๆ ฝั่งที่มีความสุขคือผู้ใช้กับ Vercel ส่วนฝั่งที่เศร้าคือกระเป๋าสตางค์
แน่นอนว่ามีข้อยกเว้นถ้าจำเป็นต้องสเกลขึ้นลงแบบไดนามิก
ไม่ได้ทำอะไรพิเศษเพื่อรับ ทราฟฟิกจาก HN เลย เป็นแค่แอป Next.js พื้นฐาน
การมีดาวน์โหลดรูปภาพและการกรองด้วย GPT เป็นไอเดียที่ดี
ปีที่แล้วผมทำเครื่องมือคล้าย ๆ กัน แต่ไม่มีฟีเจอร์พวกนั้น: https://url2text.com/
UI อาจช้า แต่ดูตัวอย่างผลลัพธ์ได้จากหน้าแรก
API พื้นฐานคือ API จับภาพหน้าจอเว็บไซต์ของ Urlbox ซึ่งถ้าใช้โดยตรงจะมีประสิทธิภาพดีกว่ามาก สามารถขอ Markdown พร้อม HTML ที่เรนเดอร์ด้วย JavaScript, metadata และ screenshot ได้ในครั้งเดียว: https://urlbox.com/extracting-text
ยังสามารถบันทึกผลลัพธ์ลง storage ที่เข้ากันได้กับ S3 ได้โดยตรงด้วย: https://urlbox.com/s3
หรือจะรับผ่าน webhook ก็ได้: https://urlbox.com/webhooks
ใน side project ผมใช้ฟีเจอร์ Markdown ของ Urlbox เรนเดอร์เกินเดือนละ 1 ล้านครั้งอยู่ และ Markdown แบบนี้เหมาะกับการใช้ทำ embedding และ prompt มากกว่า
ถ้าจะ scrape ทั้งเว็บไซต์ด้วยวิธีนี้ เครื่องมือใหม่ของ dctanner ก็น่าดู: https://usescraper.com/
ราคา $0.001 ต่อหน้า และใช้เบราว์เซอร์ headless Chrome ผลลัพธ์เร็ว และจ่ายเท่าที่ใช้เท่านั้น
ถ้าต้องการแค่ข้อความก็ดูค่อนข้างแพง
ถ้าเว็บไซต์แสดงข้อความคุกกี้ เครื่องมือนี้ดูเหมือนจะติดอยู่ตรงนั้นและ parse เนื้อหาจริงไม่ได้
ตัวอย่างเช่น ลองใส่ https://www.cnbc.com/ แล้วได้ Markdown ที่มีแค่ข้อความคุกกี้กับถ้อยคำทางกฎหมายรอบ ๆ นั้น
โชคดีที่สร้างบน API ที่ mature ซึ่งจัดการ edge case จำนวนมากจากการเรนเดอร์หน้าหลายประเภทไว้แล้ว
แค่ใช้ htmltidy กับการแปลง HTML→Markdown ของ Pandoc ก็ใช้ได้ดีพอสมควรแล้ว
http://www.html-tidy.org/
https://pandoc.org/
ทั้งดึงดูดใจและน่ากลัวที่จะลองเอา HTML template สุดท้ายทั้งหมดไปรันผ่านมัน เพื่อหาส่วนโครงสร้างผิด ๆ ที่ยังเหลืออยู่ ขึ้นอยู่กับว่าผลการแก้ไขมีโครงสร้างแค่ไหน อาจทำเป็น test suite ได้ด้วย
ผมก็ทำ smort.io ที่คล้ายกันมากไว้เหมือนกัน แค่เติม
smort.io/ไว้หน้า URL ของบทความใด ๆ ก็จะแก้ไข ใส่หมายเหตุ และแชร์ได้ง่ายใช้กับบทความ ArXiv ได้ด้วย
โพสต์ Show HN ของ Smort อยู่ที่นี่: https://news.ycombinator.com/item?id=30673502
https://jina.ai/reader/
ลองใช้กับหน้า marketing ที่ซับซ้อนแล้วจัดการได้ดีมาก
ถ้าแชร์ได้ อยากรู้ว่าโหลดบน host หนักแค่ไหน อยากรู้ว่ายังรันฟรีต่อไปได้หรือไม่ หรือสุดท้ายแล้วต้นทุนจะไม่คุ้ม
นอกนั้น GPT-4 แพง แต่จนถึงตอนนี้ค่าใช้จ่ายยังเล็กน้อยจนแทบมองข้ามได้ เลยคาดหวังอยู่ น่าจะคงไว้ได้นาน
นี่เป็นหนึ่งในกรณีที่ไม่จำเป็นต้องใช้ AI มีอัลกอริทึมที่ทำงานได้ดีมากสำหรับดึงเนื้อหาออกจากหน้าเว็บ และหนึ่งใน implementation คือ https://github.com/buriy/python-readability
เคยลองใช้ readability กับไลบรารีอื่น ๆ อีกบางตัวด้วย สงสัยว่ามาตรฐานล่าสุดทุกวันนี้เป็นอย่างไร
มันตัดเนื้อหาออกไปมากกว่าที่ต้องการมาก
Pandoc (https://pandoc.org/) ซึ่งยอดเยี่ยมเสมอ ทำงานแบบนี้ได้ดีมาก จริง ๆ แล้วมันรองรับรูปแบบเอกสารอื่นแทบทั้งหมดด้วย
น่าทึ่ง ใช้ง่าย และทำงานได้ดี เครื่องมือใหม่ในสายนี้ออกมาบ่อย แต่ถ้าจะทำให้ผมใช้ตัวอื่นแทน Pandoc คงต้องมีฟีเจอร์ที่โดดเด่นและน่าเชื่อจริง ๆ หรือปรับแต่งมาอย่างสูงสำหรับ use case เฉพาะ
เจ๋งดี อยากให้มี ส่วนขยายเบราว์เซอร์ ที่เอาสิ่งนี้ไปใช้กับทุกหน้าที่ผมอ่าน แล้วบันทึกไว้ที่ไหนสักแห่ง
https://github.com/deathau/markdown-clipper
น่าจะมีส่วนขยายทางเลือกคล้าย ๆ กันอยู่เป็นสิบตัว
https://omnivore.app/
แก้ไข: อ่านเร็วไปหน่อย พลาดส่วนที่ว่าจัดการแบบอัตโนมัติและเป็นระบบ