2014-01-30 61 views
0

我無法進行文本解析。Python:搜索所有包含「word」的行

標題:via Grab lib我在獲取html頁面之後,通過文本中的NLTK lib將其轉換,並將此文本放入變量中。在此之後,我想搜索所有包含「單詞」的行,並打印此行。

例如,我們有一個文本:

測試1:olololo
測試2:打印的東西
FAQ它的常見問題(S)
我想搜索test1,並打印結果爲:test1: olololo

import logging, nltk 
from grab import Grab 
from urllib import urlopen 

logging.basicConfig(level=logging.DEBUG) 
parsing_url = raw_input("Enter URL:") 
if parsing_url.startswith('http://') or parsing_url.startswith('https://'): 
    parsing_url = parsing_url.replace('http://','').replace('https://','') 
print parsing_url 
g = Grab() 
g.go('http://user:[email protected]' + parsing_url, log_file='out.html') 
url = "out.html" 
html = urlopen(url).read() 
raw = nltk.clean_html(html) 

在bash中,我意識到它是這樣的:

[email protected]:~$ cat 123 | grep "test1" 

而作爲結果,我得到:

test1: olololo 

但是在Python我不想執行的bash命令:)

+0

你給了一試,我的回答這個文本?如果出現問題,我很樂意改進它。 –

+0

是的,我正在嘗試你的方法,但它不適合我。 – oleksii

回答

1

試試這個:

for line in html.split(): 
    if "test1" in line: 
    print line 
0

假設raw是一個列表字符串(即行列表):

good_lines = [l for l in raw if 'test1' in l] 
0

也許有人會發現它很有用,我解決這個問題是這樣的:1。 解碼HTML中使用NLTK LIB 2.記錄爲文本這個文本通過文件 3.解析文件bash命令。例如:

status,host = commands.getstatusoutput("cat raw.log | sed 's/^[ \t]*//' | grep -A 2 \"On Host\" | sed -n 2p") 

另外,我試圖解析使用的工具蟒蛇

相關問題