我正在为网站过滤器提供值为了生成我解析的不同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源都有自己的对象。我错过了什么?
以某种方式使用地图功能会更好吗?
答案 0 :(得分:0)
您的陈述
counter=counter+1
不在for循环中。
您需要将其缩进到与前一行相同的级别,以便每次循环时计数器都会递增