我正在使用selenium来抓取目录,我正在使用枚举运算符来为我提供索引。问题是每次我进入idx重新开始的新页面。例如,如果每页有15个列表,我得到idx重复0-15表示150个列表。如何在分页中为每个页面添加idx?
while next_page is not None:
for idx, company in enumerate(company_links_elements):
company_id = idx
company_url = company.get_attribute("href")
# company_name = company.get_attribute("text")
# company_address = remove_html_tags(company_address_elements[idx].get_attribute("innerHTML"))
# writer.writerow((company_name, company_url, company_address))
writer.writerow((idx, company_url))
time.sleep(random.randint(1, 3))
next_page.click()
答案 0 :(得分:0)
尝试在idx
循环之外定义while
并在for
循环的每次迭代中递增它。像这样:
idx = 0
while next_page is not None:
for company in company_links_elements:
company_url = company.get_attribute("href")
writer.writerow((idx, company_url))
idx += 1
time.sleep(random.randint(1, 3))
next_page.click()
答案 1 :(得分:0)
您可以使用enumerate
执行此类操作,只需将可选的start
参数传递给它即可。这是一个简短的演示:
idx = 0
for i in range(3):
print('Page', i)
for k, val in enumerate('abc', idx):
print(k, val)
idx = k + 1
<强>输出强>
Page 0
0 a
1 b
2 c
Page 1
3 a
4 b
5 c
Page 2
6 a
7 b
8 c