[Python] Simple Crawler (HTML Parser)

มาดึงข้อมูลจาก Website กันเถอะ ...
นึกภาพ Mark Zuckerberg ในหนัง Social Network ตอนต้นนะครับ
อารมณ์ประมาณนั้นเลย ... (แค่อารมณ์นั้นนะ แต่ในหนังนั้น Hack ของจริง :)
(ข้อมูลทุกอย่างเป็นข้อมูลเปิดนะครับ แค่ไม่ได้ทำมาเพื่อให้ดึง แต่เราจะดึง โอเคนะ)

Library ที่เราจะใช้ (ต้องลงเพิ่ม ไม่มี Default)
คือ urllib3 และ bs4 (Beautiful Soup 4)

ซึ่งสามารถหาได้จากที่นี่ --> http://pypi.python.org/pypi?%3Aaction=index
หรือใครใช้ Unix ก็ลงจาก pip หรือ easy_install ก็ได้นะ :)
$ pip install urllib3
$ pip install beautifulsoup4
จากนั้นก็เริ่มเขียนกันได้เลย
โดยผมออกแบบ Crawler Class แบบเรียบง่ายไว้ดังนี้



ตัวอย่างที่เรียบง่ายที่สุด นั่นคือ ผมจะ Crawl เข้าไปเก็บข้อมูลภาพใน <body></body> ให้หมด
เอาจากเว็บนี้แล้วกัน :) -- http://wadkung.wordpress.com (blog รุ่นน้องผมเอง)



แต่จะเห็นได้ว่า ... เมื่อเรา Parse <img> มาแล้วมันมี image tag เยอะมาก เพราะในนั้นมีพวกภาพของตัว Wordpress เองที่ไม่ใช่ Blog Content ที่เราต้องการ ดังนั้น เราจึงต้องหาลักษณะเฉพาะจากชื่อไฟล์
(ซึ่งในที่นี้ดึงภาพของ Facebook และภาพที่ถูกอัพโดยเจ้าของ Blog)

แค่นี้เอง ไม่ยากเลย :P




Popular posts from this blog

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

"อีสุกอีใส" ประสบการณ์เมื่อต้องมาเป็นตอนอายุ 22