Fish Shell:
解析HTML

如何操作:

Fish shell主要不是为直接解析HTML而设计的。然而,它擅长将Unix工具如curlgrepsedawk,或使用专门工具如pup或在Python脚本中的beautifulsoup结合起来。下面的例子展示了如何在Fish shell中利用这些工具来解析HTML。

使用curlgrep

获取HTML内容并提取包含链接的行:

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

输出:

/page1.html
/page2.html
...

使用pup(一个用于解析HTML的命令行工具):

首先,确保安装了pup。然后你可以使用它按标签、id、类等提取元素。

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

输出,类似于grep例子,会列出<a>标签的href属性。

使用Python脚本和beautifulsoup

虽然Fish本身不能直接解析HTML,但它可以无缝集成Python脚本。下面是一个使用Python和BeautifulSoup解析并提取HTML标题的简洁示例。确保你的Python环境中安装了beautifulsoup4requests

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

这些方法各适应不同的用例和复杂性程度,从简单的命令行文本操作到在Python脚本中使用beautifulsoup的完整解析能力。根据你的需求和HTML结构的复杂性,你可能选择直接的Unix管道或更强大的脚本处理方式。