2016-09-16 78 views
0

我正在提供值的網站過濾器爲了生成不同的HTML我分析。我想將每個頁面源保存到不同的Python對象以區分數據。我有一個我將追加到的空對象列表。解析頁面源代碼,並希望將每個頁面源代碼保存到自己的Python對象中,該對象本身就是一個列表。用這種方法嵌套for循環和追加到空對象

挑戰是如何將td元素從特定的html源文件追加到列表中特定的空對象。我需要在每個迭代中存儲html源代碼,並將其存儲在一個單獨的對象中,該對象本身可以在列表中找到。

我將簡化我的例子:

years = ['2015', '2016] 
weeks = ['1', '2'] 
store = [[], [], [], []] 

這給了我4套HTML源代碼的,我需要捕獲:

for y in years: 
    for w in weeks: 

#我會用W和Y在webdriver.select到提供了網頁過濾 值,我會再使用BS複製網頁的源文件每次迭代:

html = browser.page_source 

soup = BeautifulSoup(html, "lxml") 

然後遍歷所述特定頁源提取td元素:

counter = 0  
for el in soup.find_all('td'): 

是提供一種用於存儲列表索引以附加td元素分離空物體

for el in soup.find_all('td'): 
     store[counter].append(el.get_text()) 
counter = counter + 1 

地帶HTML的元件字符,並添加到計數器以移至商店列表中的下一個對象。

但結果是所有的td元素都被附加到列表中的第一個對象,而不是每個html源都有自己的對象。我錯過了什麼?

以某種方式使用地圖功能會更好嗎?

回答

0

你的陳述

counter=counter+1 

不在範圍for循環。

您需要將它縮進與上一行相同的級別,以便計數器每次都在循環中遞增