Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสกัดข้อมูลเว็บและค้นหาคำที่เรียงลำดับในพจนานุกรมด้วย Python

สำหรับการแก้ปัญหานี้ต้องใช้โมดูล 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 ตัวอักษรจะข้าม

ประยุกต์ใช้: การวิเคราะห์ภาษาศาสตร์, ตรวจสอบคำพิมพ์, เกมคำ