สำหรับการแก้ปัญหานี้ต้องใช้โมดูล requests
การติดตั้ง
pip install requests
กระบวนการ Scraping
- นำเข้าโมดูล requests
- ดึงข้อมูลจาก URL
- ถอดรหัสข้อความด้วย UTF-8
- แปลงสตริงเป็นลิสต์ของคำ
การค้นหาคำที่เรียงลำดับ (Ordered Words)
- วนลูปผ่านลิสต์คำ
- เปรียบเทียบค่า ASCII ของตัวอักษรที่ติดกันในแต่ละคำ
- ถ้าเรียงลำดับ (ASCII เพิ่มขึ้น) พิมพ์คำนั้น ไม่เช่นนั้นเก็บเป็นคำที่ไม่เรียง
โค้ดตัวอย่าง
import requests
def words_find():
my_url = "" # ใส่ URL ของไฟล์ .txt จากเว็บไซต์ใดก็ได้
my_fetchData = requests.get(my_url)
my_wordList = my_fetchData.content
my_wordList = my_wordList.decode("utf-8").split()
return my_wordList
def word_ordered():
collection = words_find()
collection = collection[16:] # ข้าม 16 คำแรก (header ฯลฯ)
for my_word in collection:
result = 'ordered'
i = 0
l = len(my_word) - 1
if len(my_word) < 3:
continue
while i < l:
if ord(my_word[i]) > ord(my_word[i+1]):
result = 'not ordered'
break
i += 1
if result == 'ordered':
print(my_word, ':', result)
if __name__ == '__main__':
word_ordered()
คำอธิบาย
โปรแกรมจะดึงไฟล์ข้อความจาก URL แล้วตรวจสอบแต่ละคำว่าตัวอักษรเรียงตามลำดับ ASCII หรือไม่ (เช่น "abc" เรียง, "cba" ไม่เรียง) คำที่สั้นกว่า 3 ตัวอักษรจะข้าม
ประยุกต์ใช้: การวิเคราะห์ภาษาศาสตร์, ตรวจสอบคำพิมพ์, เกมคำ