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