คู่มือการใช้ไพวิกิพีเดีย/พื้นฐานการเขียนสคริปต์
การเขียนสคริปต์ เป็นการเขียนโปรแกรมให้บอตทำหน้าที่ตามที่ต้องการ ซึ่งยืดหยุ่นกว่าการใช้สคริปต์มากนัก เพราะไม่มีข้อจำกัดด้านการติดต่อกับไลบรารี
อย่างไรก็ตาม ก่อนจะทำการเขียนสคริปต์ ขอแนะนำให้อ่าน พื้นฐานการใช้งานสคริปต์ และลองใช้สคริปต์เสียก่อน เพื่อให้รู้ว่าสคริปต์ใดทำหน้าที่อะไรบ้าง เพื่อที่จะได้นำมาประยุกต์ใช้เขียนสคริปต์ได้อย่างมีประสิทธิภาพ
การอ่านและเขียนข้อมูล
แก้ไข# -*- coding: utf-8 -*-
import sys, os
sys.path.append(os.path.expanduser("~/pywikipedia"))
import wikipedia as pywikibot
site = pywikibot.getSite()
page = pywikibot.Page(site, u"ขั้นตอนวิธี")
content = page.get()
print content
page.put(u"{{ต้องการอ้างอิง}}\n" + content, u"ใส่ป้ายต้องการอ้างอิง")
pywikibot.stopme()
บรรทัดที่ | คำอธิบาย |
---|---|
1 | เป็นการบอกว่าเราจะทำงานกับอักขระ unicode ซึ่งเป็นชุดอักขระที่มีเดียวิกิใช้ |
3 - 4 | เป็นการบอกว่าให้เข้าถึงไลบรารี pywikipedia ที่ติดตั้งไว้ หากติดตั้ง pywikipedia ที่อื่น (ไม่ใช่ที่ Home directory) โปรดเปลี่ยนให้ถูกต้องด้วย |
6 | เป็นการเรียกใช้โมดูล wikipedia (wikipedia.py) ซึ่งเป็นโมดูลพื้นฐานของไลบรารี pywikipedia ทำให้เราสามารถอ่านและเขียนหน้าต่าง ๆ ได้ ตั้งชื่อเล่นโมดูลนี้ว่า pywikibot |
8 | ฟังก์ชั่น pywikibot.getSite() จะให้ข้อมูลของ site ที่เราทำงานอยู่ (เช่นทำงานบน wikibooks ภาษาไทย) ซึ่งส่วนใหญ่จะจำเป็นต้องใช้ค่านี้ในการดำเนินการต่าง ๆ |
9 | ฟังก์ชัน pywikibot.Page() ให้ object page ซึ่งสามารถอ่านและเขียนหน้าได้ รับพารมิเตอร์สองตัว คือ (1) ตัวแปร site (2) ชื่อของหน้า จากตัวอย่าง หน้าที่กำลังดำเนินการคือ "ขั้นตอนวิธี" |
10 | เป็นการใช้ method get ของ object page ซึ่งจะได้ string ของเนื้อหาในหน้ากลับมา |
11 | พิมพ์เนื้อหาออกมาสู่ standard output |
13 | เป็นการใช้ method put ของ object page ซึ่งจะเป็นการเขียนข้อมูลกลับเข้าไปที่หน้า มีพารามิเตอร์ 2 ตัวคือ (1) string ข้อมูลที่ต้องการจะเขียนเข้าไปที่หน้า (2) คำอธิบายย่อ จากตัวอย่างเป็นการเพิ่มป้าย "ต้องการอ้างอิง" เข้าไปที่บนสุดของหน้า |
15 | ฟังก์ชัน pywikibot.stopme() เป็นการบอกว่าให้บอตหยุดการทำงาน |
รายละเอียดเพิ่มเติมของฟังก์ชั่น get
และ put
โปรดอ่านที่ /wikipedia.py
ฟังก์ชันจากโมดูลต่าง ๆ
แก้ไขwikipedia.py | โมดูลพื้นฐานของไลบรารี pywikipedia |
ไม่มีความจำเป็นต้องใช้ เพราะสามารถใช้ string.replace() หรือ re.sub() ในการค้นหาและแทนที่ได้อยู่แล้ว มีเพียง exceptinsidetag เท่านั้นที่ดูยุ่งยากและไม่สามารถเขียนได้ง่าย ๆ อย่างไรก็ตามความสามารถ exceptinsidetag เป็นความสามารถของ /wikipedia.py ดังนั้นจึงไม่มีความจำเป็นต้องใช้ไฟล์นี้แต่อย่างใด
| |
ไม่มีความจำเป็นต้องใช้ เพราะสามารถเขียนโปรแกรมดำเนินการเองได้อยู่แล้ว |