Ладно, не знал, с чего начать и что делать со своим первым проектом. Я люблю слишком много вещей, и после долгих размышлений я решил, что сейчас самое время воплотить свою страсть в жизнь — теннис!

Я хотел узнать рейтинг игрока в течение года, начал искать в Интернете разные сайты и нашел https://www.atptour.com/, который является официальным сайтом. Тонны информации, но я хотел только одного рейтинга! все хорошо, готов взяться за дело и начать парсить паутину, но! Я понял, что у каждого игрока есть уникальный идентификатор:

и невозможно (или скучно !!!) вводить вручную URL-адрес и загружать их таблицу в красивый фрейм данных, чтобы отобразить ее. Не знал, что делать, вспомнил, что Selenium существует, но как с ним сделать, спросите вы? позвольте мне показать вам хороший метод.

Моя цель состояла в том, чтобы загрузить рейтинг любого игрока во фрейм данных pandas и отобразить его для целей визуализации.

Я пойду шаг за шагом, как использовать красивый селен/красивый суп/запросы и панды.

в первую очередь важно установить их все, самый простой способ: PIP INSTALL (имя модуля), и все будет готово через несколько секунд. сделать это:

После того, как вы загрузили все модули, теперь мы готовы!

Мы импортируем модули или импортируем их часть, например вебдрайвер из селена, который он связывает с браузером (я использовал хром для упрощения и лучшей синхронизации с селеном, у меня не работает Firefox ;-( ).

Для начала нам нужно установить переменную в наш драйвер (браузер).

теперь наш великий Python знает, какой браузер мы используем. Дальнейшее зависит от ваших предпочтений:

чтобы Selenium ждал 1 секунду после загрузки веб-сайта, иногда может случиться так, что Selenium работает очень быстро, веб-сайт работает медленно, и он выдает ошибку, потому что он не нашел элемент (также обещайте объяснить это ниже линия!)

Перейдите непосредственно на страницу поиска, чтобы найти нужный игрок.

Следующая часть кода самая разочаровывающая и требует терпения, я люблю свой компьютер в отличие от этого парня :-):

Строку выше нужно найти с помощью inspect

вам нужно найти точное место, где находится окно поиска, нашли его?

чтобы сделать это намного проще, Selenium дает вам возможность искать по другому параметру, здесь по идентификатору, таким образом, find.element_by_id()

После того, как Selenium знает, где вы хотите ввести имя игрока, пришло время ввести его:

Отлично, теперь мы набрали (send_keys) имя игрока и нажали ввод (keys.return). Но! Мы можем столкнуться с раздражающей проблемой, опечаткой при поиске игрока, чтобы избежать этого, мы можем использовать отличный Try/Except.

Скриншот выше, помните разочаровывающий XPATH, здесь мы снова ищем элемент игрока, чтобы щелкнуть по нему.

Но компьютер не работает на ИИ и работает «глупо», поэтому, если я ошибаюсь, компьютер спрашивает меня:

и бросить ужасную трассировку

Но будьте уверены, жизнь прекрасна, и поэтому наш питон. Чтобы отвлечь проблему, мы используем try/except, и в случае опечатки мы легко исправим ее.

Отлично, мы преодолели препятствия. теперь мы хотим узнать URL-адрес конкретного игрока и распечатать его.

Мы нашли XPATH для «истории рейтинга», щелкните по нему, и он приведет нас на страницу.

Selenium имеет отличную функцию для захвата текущего URL-адреса:

Теперь, когда мы знаем, как получить URL-адрес, в следующей статье я покажу, как загрузить данные в формате pandas.

Надеюсь, вам понравилось, и, пожалуйста, прокомментируйте, чтобы сообщить мне, было ли это хорошо, и, конечно же, какие-либо отзывы!