嵌套循环和向空对象添加内容

2024-04-26 05:35:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

挑战在于如何将来自特定html源的td元素附加到列表中的特定空对象。我需要在每次迭代时将html源代码存储在一个单独的对象中,该对象本身位于一个列表中。你知道吗

我将简化我的示例:

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

这为我提供了4组需要捕获的html源代码:

for y in years:
   for w in weeks:

#我将在中使用y和wwebdriver.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字符,并添加到counter以移动到存储列表中的下一个对象。你知道吗

但结果是所有td元素都被附加到列表中的第一个对象,而不是每个html源都有自己的对象。我错过了什么?你知道吗

使用地图功能更好吗?你知道吗


Tags: 对象storein元素列表for源代码html
1条回答
网友
1楼 · 发布于 2024-04-26 05:35:07

你的陈述

counter=counter+1

不在for循环中。你知道吗

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

相关问题 更多 >