2016-11-28 23 views
0

好吧,這是我編寫的webscraper的代碼。現在它把我用湯選擇的所有東西都刮掉了。但是當我查看我的頁面的源代碼時,這個數據包括一個<br>這是換行符。Python刮板和保存數據到文件,我需要它包括<br>標記在文件中

當我抓取並保存所有文件時,將其排除,使得所有數據都在一行中,而不包含<br>標記。我想這<br>在那裏每個數據被寫入到文件後,如下所示:

Data<br>Data<br>Data<br>Data<br> 

而不是:

DataDataDataDataData 

反正是有修改目前我的代碼?我認爲這是g = item.text.encode('utf-8'),使其刪除<br>。如果我可以在代碼中包含<br>,我會很高興,因爲那時我可以只用regex它。

try : 
       t_data = soup.find_all("div", {"class": "blockrow restore"}) 
       for item in t_data: 
        f = open('test.txt' , 'w') 
        g = item.text.encode('utf-8') 
        f.write(g) 
        f.close 


      finally: 

謝謝。

+0

你可以發佈你刮HTML的縮寫樣本,顯示了'div's你要搜索的關係爲和
標籤在他們內部? –

+0

在其他消息中,它看起來像你的'for'循環可能會在每次迭代中覆蓋「test.txt」。你可能想打開它,而不是[禮儀]。 –

+0

Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
Data
輸出成爲:不是DataDataDataDataDataDataDataDataData :數據
數據
數據
數據
數據
alexanderjoe

回答

0

如果你只是想捕捉的<br>換行符,你可以只在解析之前更換<br>標籤與新行字符的項目:

for br in item.find_all("br"): 
    br.replace_with("\n") 

如果你真的想保留的內部HTML標籤,你可以轉換BeautifulSoup項目回字符串並打印:

g = unicode(item) 
+0

非常感謝你,我做了更換循環和它的工作!謝謝! – alexanderjoe

相關問題