2013-05-10 75 views
0

我正在使用的bash shell腳本一個項目。這個想法是grep一個wget檢索頁面,以便在網頁上找到某個段落。我想複製的區域,通常有一個過濾掉HTML代碼使用grep

<p><b> 

啓動,但該段還包含HTML代碼的其他位,如錨標籤,我不希望在grep的輸出。
我試圖

cat page.html| grep "<p><b>" >grep.txt 

,然後我用grep輸出文件,它現在包含段落我想

cat grep.txt|grep -v '<p>|<b>|<a>' >grep.txt 

但後來它的作用是明顯的一切從文件,而不是讀什麼。我怎樣才能讓它只排除HTML代碼?

我也試圖遵循在我的grep段落的聯繫,以做同樣的事情與這些網頁。只有2層深,所以主頁面,然後是主頁面的第一段的任何子頁面。我知道這是一個困難的想法,希望我解釋得很好,以獲得一些幫助。如果你有任何想法,任何幫助表示讚賞。

回答

1

你必須這樣做在bash?在我看來了Python會借給自己這個問題,特別是庫調用Beautiful Soup

我以前用這個解析HTML,它是我能找到的最簡單的工具。它有很好的documentation for dealing with html

也許你可以做一個獨立的python代碼,提取HTML然後回顯你之後的字符串。然後可以從你的bash腳本中調用python代碼,如果你有一些bash函數要對字符串執行的話。

+0

這是一個好主意,除了我從來沒有在python中學過任何東西。這不是一個大問題,我只需要努力一點。 – eragon2262 2013-05-12 01:27:12