2017-08-15 60 views
0

解析我有寫在Python 3簡單的2步解析腳本如下工作:如何清理內存,而在Python

1)中給出的函數一個URL BeautifullSoup解析它,收集所有需要的數據在簡單的熊貓系列,然後返回它:當腳本運行

for url in urls: 
    dataframe.append(parse(url)) 

def parse(url): 
    ...fill in Series 
    return Series 

2)我有一個巨大的URL(超過50K的項目),我在一個循環工作的列表記憶美國ge增加很多(例如20分鐘後只有5 GB)。

如何在每次迭代後正確清理內存或下載緩存?如果

+1

試着懶洋洋地處理一切。儘管沒有更多的上下文,但很難說更多。 – Carcigenicate

+0

對不起,你說什麼「懶洋洋地處理一切」是什麼意思? –

+0

使用生成器,所以你不要一次把所有東西放在內存中。讓生成器產生結果,而不是一次性將所有內容都轉儲到列表中。 – Carcigenicate

回答

0

玉傢伙,你奮鬥了同樣的問題:

1)確保您使用soup.decompose()與它 2)當然,我犯了一個錯誤後完成時,我試圖填補所有數據一個pd.DataFrame保存到文件之前。現在我得到一個小的tmp數據幀,一旦我得到固定數量的行,我保存它然後清除tmp。

現在處理使用大約200 mb的RAM最大值。

就是這樣,希望能幫助任何人。