ไลบรารีที่ผมจะขอแนะนำในบทความนี้คือ ไลบรารี pyspider ครับ เป็นไลบรารีหนึ่งที่สามารถเป็น Web Crawle ได้ครับ
- Python 2&3
- รองรับฐานข้อมูล MySQL, MongoDB, SQLite, PostgreSQL
- มีหน้า WebUI พร้อมป้อนคำสั่งโค้ดการทำงาน, task monitor, project manager and result viewer
- ใช้ Apache License Version 2.0
pip install pyspider
แล้วเรียกใช้งานได้โดยสั่ง pyspider แล้วเข้าไปยัง http://localhost:5000/ ครับ
แล้วลองเล่นโค้ดใส่ในหน้ารับโค้ดคำสั่งครับ
[python]
from pyspider.libs.base_handler import *
class Handler(BaseHandler):
crawl_config = {
}
@every(minutes=24 * 60)
def on_start(self):
self.crawl('http://scrapy.org/', callback=self.index_page) #กำหนดเว็บไซต์ที่ต้องการไปดึงข้อมูล
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
for each in response.doc('a[href^="http"]').items():
self.crawl(each.attr.href, callback=self.detail_page)
def detail_page(self, response):
return {
"url": response.url, #ดึงที่อยู่ลิงค์ภายในเว็บที่กำหนด
"title": response.doc('title').text(), #ดึงข้อมูลภายในเว็บที่กำหนด
}
[/python]
ผลลัพธ์
จะเห็นได้ว่า โปรแกรมได้ไปดึงลิงค์ต่าง ๆ และชื่อหัวเว็บมาครับ
ลองเล่น pyspider ได้ที่ demo.pyspider.org
อ่านเอกสารการใช้งาน Web Crawler ด้วย pyspider ได้ที่ docs.pyspider.org/en/latest//
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)