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 ที่ตรงไปตรงมาหรือแนวทางสคริปต์ที่มีพลังมากขึ้น