Обнаружено исключение "Список индексов вне диапазона" при очистке веб-страниц с помощью Selenium - PullRequest
0 голосов
/ 04 октября 2019

Я собираю данные для проекта науки о данных, использующего Selenium, и я не знаю, почему я получаю ошибки Index в части записи в csv. Когда я распечатываю данные как есть, вывод выглядит нормально.

Код ниже:

'' '

driver = webdriver.Firefox(executable_path="/filepath/geckodriver.exe")

url = 'https://website.com'

driver.get(url)

with open('file.csv', 'w') as f:
    f.write('Column1', 'Column2', 'Column3', '\n')

ids = driver.find_elements_by_xpath('//*[@class="id-name"]')
id_list = []
for i in range(50):
    id_list.append(ids[i].text)
print(len(ids))
print(len(id_list))
print(id_list[0:50])

# Break up into batches to save memory
new_id_list = [id_list[i:i+5] for i in range(0,len(id_list),5)]

#time.sleep(1200)

for i in range(len(new_id_list)):
    for j in range(len(new_id_list[i])):
        url = 'http://www.website.com?id=' + str(id_list[j])
        driver.get(url)
        col1 = driver.find_elements_by_xpath('//*[@id="field-value-col_1"]/span/span')
        col2 = driver.find_elements_by_xpath('//h1[@id="field-value-col_2"]')
        col3 = driver.find_elements_by_xpath('//*[@id="field-value-col_3"]')

        print(id_list[i][j] + ',' + col1[0].text + ',' + col2[0].text + ',' + col3[0].text, '\n')

# This is where I get the error usually.

        with open('bugzilla.csv', 'w') as f:
            f.write(id_list[i][j] + ',' + col1[0].text + ',' + col2[0].text + ',' + col3[0].text, '\n')


    print('Batch of 5')

f.close()

' ''

1 Ответ

0 голосов
/ 04 октября 2019

Здесь

print(id_list[i][j] + ',' + col1[0].text + ',' + col2[0].text + ',' + col3[0].text, '\n')

вы работаете с вашим id_list как с двумерным массивом, в то время как ранее вы определяете его как

id_list = []
for i in range(50):
    id_list.append(ids[i].text)

Вы, вероятно, имели в виду: print(new_id_list[i][j] + ',' + col1[0].text + ',' + col2[0].text + ',' + col3[0].text, '\n')

...