![](/img/trans.png)
[英]How to strip comments from Php/Html source? (with sed/awk/grep etc..)
[英]Using awk sed or grep to parse URLs from webpage source
我正在嘗試解析下載的網頁的來源,以獲取鏈接列表。 單行可以正常工作。 這是我到目前為止所嘗試的:
這似乎從一些頁面名稱中省略了部分URL。
$ cat file.html | grep -o -E '\b(([\w-]+://?|domain[.]org)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))'|sort -ut/ -k3
這將獲取所有URL,但我不想包含具有/是錨鏈接的鏈接。 另外我希望能夠指定domain.org/folder/:
$ awk 'BEGIN{
RS="</a>"
IGNORECASE=1
}
{
for(o=1;o<=NF;o++){
if ( $o ~ /href/){
gsub(/.*href=\042/,"",$o)
gsub(/\042.*/,"",$o)
print $(o)
}
}
}' file.html
如果您只解析類似<a>標記的內容,則可以像這樣匹配href屬性:
$ cat file.html | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | sort | uniq
這將忽略錨,並保證你有獨特的。 這確實假設頁面具有格式良好的(X)HTML,但您可以先將其傳遞給Tidy。
lynx -dump http://www.ibm.com
並在輸出中查找字符串'References'。 如果需要,可以使用sed
后處理。
使用不同的工具有時會使工作更簡單。 偶爾,一個不同的工具使工作變得簡單。 這是其中一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.