[英]Data scraping with wget and regex
我只是在學習bash腳本,我試圖從網站上抓取一些數據,主要是wikitionary。 這就是我現在在命令行上嘗試但它沒有返回任何結果
wget -qO- http://en.wiktionary.org/wiki/robust | egrep '<ol>{[a-zA-Z]*[0-9]*}*</ol>'
我正在嘗試的是獲取標簽之間的數據,只是希望它們被顯示。 能幫我看看我做錯了嗎?
謝謝
你需要將輸出發送到stdout:
wget -q http://en.wiktionary.org/wiki/robust -q -O - | ...
要使用grep獲取所有<ol>
標記,您可以執行以下操作:
wget -q http://en.wiktionary.org/wiki/robust -O - | tr '\n' ' ' | grep -o '<ol>.*</ol>'
至少你需要
-e
開關激活正則表達式。 -O -
選項將輸出從wget發送到stdout而不是磁盤 老實說,我會說grep是這個任務的錯誤工具,因為grep在每行基礎上工作,並且你的表達式延伸了幾行。
我認為sed
或awk
更適合這項任務。
用sed
看起來像
wget -O - -q http://en.wiktionary.org/wiki/robust | sed -n "/<ol>/,/<\/ol>/p"
如果你想擺脫額外的<ol>
和</ol>
你可以追加
... | grep -v -E "</?ol>"
相關鏈接
如果我正確理解了這個問題,那么目標就是從ol-sections中提取可見文本內容。 我會這樣做:
wget -qO- http://en.wiktionary.org/wiki/robust |
hxnormalize -x |
hxselect "ol" |
lynx -stdin -dump -nolist
hxnormalize預處理應用CSS選擇器“ol”的hxselect的HTML代碼。 Lynx將呈現代碼並將其減少到瀏覽器中可見的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.