Я продолжаю получать следующую ошибку:
Traceback (most recent call last):
File "C:\Users\User\Documents\Project.py", line 100, in <module>
parseData(array)
File "C:\Users\User\Documents\Project.py", line 91, in parseData
name2 = pageSoup.findAll('div', {'class': 'item-title'})[0].string
IndexError: list index out of range
Массив, передаваемый в функцию, содержит пару тысяч URL. Когда я тестировал массив с гораздо более короткой длиной в сотни, он был функциональным, и закончил без проблем. Я не слишком уверен, почему он не работает, когда в качестве входных данных используется массив большего размера.
def parseData(urls):
f = io.open('output.txt', 'a', encoding='utf-8')
for url in urls:
response = urllib.request.urlopen(url)
responseContent = response.read()
pageSoup = BeautifulSoup(responseContent, 'html.parser', from_encoding="utf-8")
if 'https://example.com' in url:
name = pageSoup.findAll('h3', {'class': 'tb-main-title'})[0].string
price = pageSoup.findAll('em', {'class': 'tb-rmb-num'})[0].string
link = url
print('Retriving data from ' + str(link) + '...\n' + str(name) + ':' + str(price))
f.write('\n' + str(link) + '\n' + str(name) + '\n' + str(price) + '\n')
elif 'https://example2.com' in url:
name2 = pageSoup.findAll('div', {'class': 'item-title'})[0].string
price2 = pageSoup.findAll('span', {'class': 'cur-price'})[0].string
print('Retriving data from ' + str(link) + '...\n' + str(name2) + ':' + str(price2))
f.write('\n' + str(link) + '\n' + str(name2) + '\n' + str(price2) + '\n')
Спасибо, что нашли время, чтобы проверить это, любая помощь очень ценится! :)