มีหลายท่านติดต่อผ่าน ห้องติดต่อ มาหาผม เพื่อถามผมว่าจะทำ web crawler ยังไงดี???

ดูเหมือนการไปล้วงข้อมูลจากเว็บของผู้อื่น โดยให้คอมพิวเตอร์ช่วยผ่อนแรงให้ ถือเป็นความต้องการลำดับต้น ๆ ของผู้ที่อยากจะได้เนื้อหาโดยไม่ต้องออกแรงมากจริง ๆ

ผมก็เลยคิดว่าผมควรจะรวบรวมมาบอกตรงนี้เลยดีกว่า ขี้เกียจมาตอบทีล่ะคนมันเยอะ แล้วถ้าผมตอบถูกหรือผิดยังไงก็ให้พวกเราที่แอบเข้ามาอ่านกันเงียบ ๆ ที่บล็อกแห่งนี้ช่วยขัดเกลาด้วยนะ ว่ามันถูกหรือเปล่า เพราะผมเนี่ยก็ขามั่วอันดับหนึ่งในแผ่นดินเหมือนกัน

อ่ะแฮ่ม … งั้นเริ่มเลยนะ …

หากว่าท่านต้องการจะสร้างซอฟต์แวร์ประเภท web crawler นั้น สิ่งที่ท่านควรจะมีก็คือ

  1. ความรู้ความเข้าใจใน regular expression ยิ่งเก่งอย่างเทพได้ยิ่งดี เพราะถ้าใครเขียนได้สั้น กระทัดรัด แต่สำแดงแสนยานุภาพได้มากมาย ก็ถือว่าคนนั้นเก่ง!!! (วัดงี้เลยเหรอ?)
  2. ตัวแปลภาษาคอมพิวเตอร์ อาทิเช่น Haskell (ไม่รู้จักว้อย), .NET, Perl, PHP, Python, Ruby, Tcl 8.4 (ไม่รู้จักเหมือนกัน), D (มีด้วยหรือวะภาษานี้) หรือ Java ซึ่งตัวแปลภาษาคอมพิวเตอร์เหล่านี้ สนับสนุน regular expression อย่างเต็มกำลัง (สำหรับสาวก Delphi ไม่ต้องเสียใจไป เพราะมี Component ที่สนับสนุน regular expression ให้ดาวน์โหลดมากมาย)
  3. ความรู้ความเข้าใจในการ GET หน้าเว็บผ่าน HTTP
  4. จินตนาการในการตัดคำหรือประโยค ว่าจะเอาเงื่อนไขเล่ห์กลใด ๆ มาใช้ในการตัดคำถอดประโยคจาก tag html ที่แสดงอยู่ในหน้าเว็บบ้าง
  5. คอมพิวเตอร์ซึ่งต่อเข้ากับเครือข่ายที่ออกอินเตอร์เน็ตได้ตลอด 24 ชั่วโมง โดยไม่มีอะไรมาขัดจังหวะหรือหยุดชะงัก เพราะท่านต้องใช้คอมพิวเตอร์เครื่องดังกล่าว สำหรับสั่งให้ซอฟต์แวร์ที่ท่านเขียนขึ้น ทำงานเป็นวรรคเป็นเวรอย่างที่ท่านต้องการ

แต่ถ้าท่านขี้เกียจเขียนเอง ผมขอแนะนำให้ท่านดาวน์โหลด Heritrix: Internet Archive Web Crawler ซึ่งเป็น opensource ภาษา Java ไปลองใช้ครับ น่าจะสะดวกกว่าเยอะเลย

ป.ล. ผมกระจอกภาษา Java มากเลยครับ โดยเฉพาะถ้าต้องใช้ Java แสดงผลด้วย AWT หรือ Swing ด้วยนะ ยิ่งกลายเป็นไอ้โง่ไปเลย ดังนั้น ไม่สามารถแนะนำอะไรเกี่ยวกับ Java ได้เด้อ

[tags]web, crawler, awt, swing, java, regular, expression,คอมพิวเตอร์[/tags]

Related Posts

7 thoughts on “เคล็ดลับการสร้าง web crawler

  1. ภาษาที่เหมาะสำหรับเริ่มเขียน web crawler ผมว่าน่าจะเป็น php นะครับ ด้วยความถึกของมัน ทำให้เขียน crawler ได้ง่ายมากครับ ตรงไปตรงมา ไม่อ้อมค้อม

    ผมเคยเขียนด้วย .net กับ python แล้ว รู้สึกว่า เขียนด้วย php พริ้วกว่าครับ

  2. เออ ก็ไม่เลวเหมือนกันแฮะคุณ AMp เพราะปรกติผมจะเข้าใจอยู่เสมอว่า โปรแกรมที่ต้องทำงานแบบ realtime ตลอด 24 ชั่วโมงนั้น ควรจะสร้างเป็น desktop application ซึ่งน่าจะดีกว่า web application แต่ถ้าใช้ web application ทำงานเป็นแบบ realtime ก็ไม่เลวเหมือนกันแฮะ ทำให้มันตอบโต้ด้วย Ajax เลย ดี ๆ

    ผมเขียนเป็นแค่ 2 ตัวเท่านั้นครับคุณ MrJack นั่นก็คือ Delphi และ PHP เพราะผมมีโอกาสแตะต้องภาษาคอมพิวเตอร์อื่นไม่มากนัก T-T เศร้า

  3. อยู่ที่ทำงาน ผมไม่ได้เขียนโปรแกรม, ไม่ได้ทำ functional specification และไม่ได้วิเคราะห์ระบบครับคุณ MrJack งานที่ผมทำเห็นเจ้านายผมเรียกว่า งานบริหารจัดการครับ

  4. #3 พอดีผมเคยลองเขียนด้วย .net, python อะไรแบบนี้อะครับ อยากจะลองเลียนแบบงานวิจัยต้นฉบับของ google สุดท้ายไปไม่รอดครับ ต้องเปิด thread จัดการนู่นๆ นี่ๆ อะไรสารพัด เสียเวลาเรียนรู้เยอะเหมือนกัน (เรื่องของเรื่องคือ ขี้เกียจครับ – -”)

    เล่น php เลยดีกว่า เขียนเป็น single thread
    ถ้าอยากได้ multi-thread ก็ไม่ยาก
    แค่ request ไปที่ php หลายๆ ทีเท่านั้นแหละ
    เดี๋ยว apache มันก็จัดการเรื่อง thread ให้เอง 😀

    ป.ล. ถ้าขี้เกียจ request เองหลายๆ รอบ จะใช้ timer ของ .net มาทริกเรื่อยๆ ก็ได้ครับ ง่ายดีด้วย ^^

  5. ผมเคยเขียนใช้ java กับ finite state machine อ่ะครับ generic regular expression engine คงไม่เหมาะสมเท่าไหร่อะครับ มันทำเยอะเกินที่อยากได้ มันเป็นการบ้านอันนึงทำตอนเรียนอ่ะครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *