Проблема с навигацией BeautifulSoup по тегам XPath (прохождение Nonetype)
Прошу совета. Есть задач – из большой страницы вытягивать данные отдельных ячеек. Для этого скачивается страница так (тут все работает):
import requests
from bs4 import BeautifulSoup
url='https://car.autohome.com.cn/config/spec/52323.html#pvareaid=3454569'
r=requests.get(url)
r.text
soup = BeautifulSoup (r.text, 'lxml')
soup
Далее в коде есть как число необходимая цифра, к ней ведет путь:
/html/body/div[3]/div[3]/table[3]/tbody/tr[2]/td[1]/div
(получено копированием Full XPath Chrome)
Я последовательно иду к целевому тегу, подставляя по одному значения
print (type(soup.html.body))
– до этого момента все норм. Тут в анализе типа контента '<class 'NoneType'>' содержимое None.
print ((soup.html.body.find_all('div')))
находит много тегов div
Следующий уровень
print (type(soup.html.body.div[3]))
– на этом моменте появляется ошибка 'KeyError: 3'
Такая ошибка есть в документации BeautifulSoup, и там рекомендуют заменить на tag.get('attr')
Я поменял так
print (soup.html.body.div.get('3'))
– Несмотря на то, что система выдает сообщение о том что контент None, я не уверен, правильно ли поменял. На следующий уровень вниз зайти не могу. Выдача – None Type – Nonetype При добавлении следующего тега последовательно
print (soup.html.body.div.get('3').div.get('3'))
указывается
AttributeError: 'NoneType' object has no attribute 'div'
Попытка использовать команды find_all, child, children, content дают такой эффект.
AttributeError: 'NoneType' object has no attribute 'child'
В связи с этим вопрос – как мне пройти на уровень ниже. Там даже 3 вопроса:
- Как убедится что BS 4 получил тот же самый код, который я вижу на сайте (искомая цифра поиском в коде, скачанным BS4 находится, так что думаю, что да, поскольку она еще глубже.
- Как осуществить переход на уровень ниже.