Я очень плохо знаком с Python и программированием в целом (я в основном начал несколько дней назад), поэтому прости меня, если я использую неправильные термины или задаю глупый вопрос.
Я пишу веб-скребок, чтобы получить данные с сайта о вакансиях.Я написал некоторый код, который в первую очередь загружает данные с главной страницы результатов поиска, анализирует их и извлекает из них заголовки, содержащие ссылку на каждую из страниц вакансий, где можно найти подробную информацию о каждой конкретной вакансии.Затем я написал код, который открывает каждую ссылку и анализирует HTML-код каждой страницы вакансии.
Теперь все это работает нормально.У меня есть проблема со следующим.Я хочу собрать некоторые данные с каждой из этих страниц вакансий и сохранить данные для каждой вакансии в отдельном списке, чтобы позже я мог поместить все эти списки в фрейм данных.Поэтому я искал способ нумерации или «индексации» (если это правильный термин для использования) каждого списка, чтобы я мог обратиться к ним позже.Ниже приведен код, который у меня есть на данный момент.Следуя совету, который я нашел, прочитав существующие ответы в Stackoverflow, я попытался использовать перечисление для создания индекса, который я могу назначить каждому списку, следующим образом:
vacancy_headings = resultspage1_soup.body.findAll("a", class_ ="vacancy-link")
vacancydetails = []
for index, vacancy in enumerate(vacancy_headings, start=0):
vacancypage_url = urljoin("https://www.findapprenticeship.service.gov.uk",vacancy["href"])
vacancypage_client = urlopen(vacancypage_url)
vacancypage_html = vacancypage_client.read()
vacancypage_soup = soup(vacancypage_html, "html.parser")
vacancydetails[index]=[]
for p in vacancypage_soup.select("p"):
if p.has_attr("itemprop"):
if p["itemprop"] == "employmentType" or p["itemprop"] == "streetAddress" or p["itemprop"] == "addressLocality" or p["itemprop"] == "addressRegion" or p["itemprop"] == "postalCode":
cells = p.text
vacancydetails[index].append(cells)`
Но я получаю следующее сообщение об ошибке:
IndexError Traceback (most recent call last)
<ipython-input-10-b8a75df16395> in <module>()
9 vacancypage_html = vacancypage_client.read()
10 vacancypage_soup = soup(vacancypage_html, "html.parser")
---> 11 vacancydetails[index]=[]
12
13 for p in vacancypage_soup.select("p"):
IndexError: list assignment index out of range
Может ли кто-нибудь объяснить мне (на простом для понимания языке, если это возможно!), Что идет не так, и как я могу решить эту проблему?
Спасибо !!