Message: invalid type: null, expected a string at line 1 column 12
Есть парсер, но почему - то не работает перелистывание страниц, хотя все должно быть в порядке, просто выбивает ошибку Message: invalid type: null, expected a string at line 1 column 12 Вот есть цикл перелистывания
try:
a_next_page = driver.find_element_by_css_selector('.pager__number-lbl-i')
url = a_next_page.get_attribute('href')
except NoSuchElementException:
break
Вот ссылка на сайт с которого нужно спарсить данные:
пробовал 3 css селектора, а именно:
a_next_page = driver.find_element_by_css_selector('.pager__number-lbl-i')
a_next_page = driver.find_element_by_css_selector('.category-next__i')
a_next_page = driver.find_element_by_css_selector('.category-next')
в чем может быть проблема? Вот строка в которой выбивает ошибку
while True:
print('Load:', url)
driver.get(url)
Вот собственно в чем проблема, все идет хорошо до конца страницы, а потом в ссылке возвращает значение None
('Штатна магнітола Gazer CM5509-RB for Hyundai Accent (RB) (2010-2015)', '12 999\n₴\nБонусами\n130 ₴', 'Есть в наличии')
('Штатна магнітола Gazer CM6510-GFW for Mitsubishi Outlander (GFW) (2014-2017)', '17 619\n₴\nБонусами\n176 ₴', 'Есть в наличии')
('-', '-', 'Есть в наличии')
Load: None
Выбивает ошибку в 37 строке Message: invalid type: null, expected a string at line 1 column 12
Load: None
Message: invalid type: null, expected a string at line 1 column 12
Трассировка стека:
> File "C:\Users\К.Бояр (Второй)\source\repos\ParcerComfy\ParcerComfy\ParcerComfy.py", line 37, in parse
> driver.get(url)
> File "C:\Users\К.Бояр (Второй)\source\repos\ParcerComfy\ParcerComfy\ParcerComfy.py", line 85, in <module> (Current frame)
> items = parse(url)
Ответы (1 шт):
У вас в url значение None, поэтому тут ошибка:
print('Load:', url)
driver.get(url)
В логах написано про значение url:
Load: None
Переменная url становится None тут:
try:
a_next_page = driver.find_element_by_css_selector('.pager__number-lbl-i')
url = a_next_page.get_attribute('href')
except NoSuchElementException:
break
Представьте случай, когда есть тег a, но у него нет атрибута/значения href, думаю это ваш случай.
Решения тут 2:
- Самый простой. Добавьте в css-селектор условие, что нужен тег с атрибутом
href(в прошлом ответе было такое решение):a_next_page = driver.find_element_by_css_selector('.pager__number-lbl-i[href]') - Добавьте условие, что если
urlбудет пустой, тоbreak:try: ... url = a_next_page.get_attribute('href') if not url: break except NoSuchElementException: break