Когда вы не получаете ожидаемых результатов от своего кода, вам нужно вернуться назад, чтобы выяснить, где ваш код сломался.
В этом случае вашим первым шагом будет проверка значения таблицы. Как выясняется, таблица не является None (что означало бы неправильный вызов селектора / soup.find), так что вы, по крайней мере, знаете, что вы правильно поняли.
Вместо этого вы заметите, что div table_flex пуст. Это не очень удивительно для меня, но давайте представим, что я ничего не знаю, и это не имеет никакого смысла. Поэтому следующим шагом будет запуск браузера и повторная проверка того, что DOM (через инструмент проверки вашего браузера) имеет содержимое в div table_flex.
Да, так что теперь вам нужно по-настоящему копать. Если вы выполните простой поиск в DOM в окне проверки «table_flex», вы сначала увидите div, о котором мы уже знаем, но затем вы увидите некоторый Javascript / jQuery ниже по странице, которая ссылается на «#table_flex». ».
Этот Javascript является частью вызова $ .ajax () (который вы могли бы найти в Google и выяснить, это в основном запрос к веб-серверу для получения информации). Вы также заметите, что $ ("# table_flex") имеет метод html () (который, как вы обнаружите, после большего количества поиска в Google устанавливает html-контент для определенного элемента).
И теперь у нас есть ваш ответ о том, почему div пуст: когда веб-сервер запрашивает эту страницу, сервер отправляет обратно документ с пустой таблицей. Ожидается, что запрашивающая сторона выполнит Javascript для заполнения остальной части страницы. Вообще говоря, модули Python не запускают Javascript (по нескольким причинам), поэтому таблица никогда не заполняется.
Это, как правило, стандартная рабочая процедура для динамического контента, поскольку веб-страницы «шаблона» могут кэшироваться и быстро распространяться (поскольку никакой дополнительной информации не требуется), а затем остальная информация предоставляется по мере необходимости. Это также позволяет использовать один и тот же документ для нескольких URL-адресов и аргументов запроса без необходимости создания новых документов.
В конечном счете, вам, вероятно, будет проще всего определить, можете ли вы самостоятельно получить доступ к этому API и просто запросить этот URL вместо этого.