嵌套for循环并附加到空对象

时间:2016-09-16 04:17:53

标签: python nested-loops

我正在为网站过滤器提供值为了生成我解析的不同html。我想将每个页面源保存到不同的Python对象,以便区分数据。我有一个空的对象列表,我将附加到。解析页面源,并希望将每个页面源保存到自己的Python对象中,该对象本身就在列表中。就这样

挑战在于如何将特定html源中的td元素附加到列表中的特定空对象。我需要在每次迭代时将html源存储在一个单独的对象中,该对象本身可以在列表中找到。

我将简化我的例子:

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

这给了我需要捕获的4套html源代码:

for y in years:
   for w in weeks:

#I将在webdriver.select中使用y和w来为网页过滤器提供值 然后,我将使用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源都有自己的对象。我错过了什么?

以某种方式使用地图功能会更好吗?

1 个答案:

答案 0 :(得分:0)

您的陈述

counter=counter+1

不在for循环中。

您需要将其缩进到与前一行相同的级别,以便每次循环时计数器都会递增