Fish Shell:
การวิเคราะห์ HTML

วิธีการ:

Shell Fish โดยส่วนใหญ่ไม่ได้ถูกออกแบบมาสำหรับการแยกข้อมูล HTML โดยตรง อย่างไรก็ตาม มันโดดเด่นในการเชื่อมต่อเครื่องมือ Unix เช่น curl, grep, sed, awk, หรือใช้เครื่องมือเฉพาะทางเช่น pup หรือ beautifulsoup ในสคริปต์ Python ด้านล่างเป็นตัวอย่างที่แสดงวิธีใช้เครื่องมือเหล่านี้จากภายใน Shell Fish เพื่อแยกข้อมูล HTML

การใช้ curl และ grep:

การดึงเนื้อหา HTML และการดึงข้อมูลบรรทัดที่มีลิงก์:

curl -s https://example.com | grep -oP '(?<=href=")[^"]*'

ผลลัพธ์:

/page1.html
/page2.html
...

การใช้ pup (เครื่องมือที่ใช้บรรทัดคำสั่งสำหรับแยกข้อมูล HTML):

ขั้นแรก ตรวจสอบให้แน่ใจว่า pup ถูกติดตั้งแล้ว หลังจากนั้นคุณสามารถใช้มันเพื่อดึงข้อมูลองค์ประกอบตามแท็ก, ไอดี, คลาส, ฯลฯ

curl -s https://example.com | pup 'a attr{href}'

ผลลัพธ์ คล้ายกับตัวอย่าง grep, จะแสดงรายการแอตทริบิวต์ href ของแท็ก <a>.

ด้วยสคริปต์ Python และ beautifulsoup:

ในขณะที่ Fish เองไม่สามารถแยกข้อมูล HTML ได้โดยตรง มันสามารถรวมตัวกับสคริปต์ Python ได้อย่างราบรื่น ด้านล่างเป็นตัวอย่างที่กระชับซึ่งใช้ Python กับ BeautifulSoup เพื่อแยกและดึงข้อมูลหัวเรื่องจาก HTML ตรวจสอบให้แน่ใจว่าคุณมี beautifulsoup4 และ requests ติดตั้งในสภาพแวดล้อม Python ของคุณ

parse_html.fish

function parse_html -a url
    python -c "
import sys
import requests
from bs4 import BeautifulSoup

response = requests.get(sys.argv[1])
soup = BeautifulSoup(response.text, 'html.parser')

titles = soup.find_all('title')

for title in titles:
    print(title.get_text())
" $url
end

การใช้งาน:

parse_html 'https://example.com'

ผลลัพธ์:

Example Domain

แต่ละวิธีการเหล่านี้ให้บริการสำหรับกรณีการใช้งานและขนาดความซับซ้อนที่แตกต่างกัน ตั้งแต่การจัดการข้อความในบรรทัดคำสั่งที่ง่ายไปจนถึงพลังการแยกข้อมูลเต็มรูปแบบของ beautifulsoup ในสคริปต์ Python ขึ้นอยู่กับความต้องการของคุณและความซับซ้อนของโครงสร้าง HTML คุณอาจเลือกใช้ไปป์ไลน์ Unix ที่ตรงไปตรงมาหรือแนวทางสคริปต์ที่มีพลังมากขึ้น