Европейская ситуация
Так что любой британский экспан/иностранец, как я, что живет в Испании знает, насколько невероятно сложно забронировать встречу и получить документы в порядке.
Там всегда что-то.
Вы получаете свой идентификационный номер, тогда вы должны получить свой номер социального страхования, то вам нужно зарегистрироваться, где вы живете (Padron), используя эти номера и договор аренды, но это длится только за несколько месяцев, прежде чем обновлять его.
Сейчас из-за Brexit. , Мне пришлось идти и сделать свои отпечатки пальцев и зарегистрироваться, как долгосрочный резидент, прежде чем мой европейский статус не отключается!
Невыполнение этого обновления удостоверения личности будет иметь несколько довольно раздражающих последствий с моей способностью продолжать работать в этой стране и строить здесь жизнь!
Страшный офис
Введите печально Aluche Офис, где эксплуатации проводят часы/сутки/недели, пытаясь найти встречу, офис, который выходит из города, и занимает возраст, чтобы прибыть в офис, который отправляет вам домашний плакать, если у вас нет 17 фотокопий каждого документа.
Я также не шучу о старых соседах домой, плача домой после поездки Алуше.
Если вам нужно сделать какие-либо документы в Испании, планируйте забронировать полдня до полной работы с работы.
Идеальная установка
Мне повезло тратить полный день летом в поисках встреч, чтобы сделать мои отпечатки пальцев. Я даже взял свою родную подругу со мной как резервную копию для проблем, которые они должны были дать мне (как всегда) ….. Сделано, все сделано.
- ” Вернитесь на 1 месяц от сейчас и соберите свою новую удостоверение личности »
Идеально Я не мог поверить, насколько безусловно легко легко сделать это. Мы оба были удивлены! Все, что мне нужно было сделать, это качается через месяц и забрать мой блестящий новый идентификатор.
Идиот я
Поэтому, очевидно, мой мозг имеет достаточно просто места для поддержания жизненно важной информации, и все остальное просто выпадает, если только нет 3 сигналов тревоги, чтобы напомнить мне.
Моя подруга спрашивает
«Когда ваша встреча была забрать свою карту ……?»
Мы оба посмотрели друг на друга, зная, что у меня рояльно испорченные.
Мне было 1 месяц поздно, чтобы забрать свой идентификатор, а дата отсечения для британских эмиссий было через 1 месяц.
Я назвал печальнозвуковой офис, чтобы увидеть, могу ли я просто качаться по и забрать мою карту ..
- “НЕТ! Вы бронируете встречу. Если нет назначений, вы попробуйте снова на следующий день »
Так как я упоминал ранее «Часы/сутки/недели, пытаясь найти встречу» И мой европейский статус на грани смерти. Не хорошее место, чтобы быть.
Python к спасению
Длинная и короткая из этого – я только начал новую работу, поэтому я не в состоянии тратить часы, освежающую страницу правительства, надеясь, что смогу вырвать кого-то отмененную встречу.
Итак, я построил небольшой сценарий, который автоматизировал на встречу на прием для меня – если было что-то доступное Мой Mac начнет кричать на меня из другой комнаты, где я мог бы бежать, проверять доступные встречи и забронировать его.
Я смог комфортно войти с работой, зная, что в какой-то момент мой Mac начнет кричать в его красивый роботизированный голос, и все будет хорошо.
Настройка
Для этого я решил использовать Selenium, модуль Python, который используется для запуска автоматизированных тестов на веб-сайтах.
Вы можете настроить его на открытые страницы, нажимайте, заполните формы, подождите и проверьте, появляются ли определенные вещи на странице или нет.
У меня было Просто провел 13 часов по тесту кода Делать только что, поэтому я не собирался пройти эту возможность.
Импорт
Я узнал несколько вещей об эффективной пользу селена. Одна вещь импортировала ожидаемые условия. Это позволяет автоматически ждать, пока на странице не появится конкретный элемент.
Если в вопросе сайта медленно загружается, ваша программа не будет сбиваться, потому что она не может найти кнопку, которая ищет.
Вам также не нужно программировать время ожидания 3 секунды, например, в то время как страница нагрузки.
Я также потянул в модуль ожидания, потому что я не хотел спешить через сайт, как бот,
- «Давайте подделать быть человеком и ждать 4 секунды прямо здесь»
Я написал весь код автоматизации перед рукой, а затем застрял его в цикле.
Если нет назначений, «LetS_Go» всегда будет Правда , в противном случае, если мы найдем встречу, мы сократив программу и измените «lets_Go» на false.
Мы получаем () Обеспокоенный сайт и получите эту партию.
Это грубые, но я был в гонке против времени.
Нажав/набрать/ждать
Вот пример нажатия вокруг веб-сайта.
В большинстве случаев вы можете использовать инспектор страницы, чтобы найти элемент, который вы хотите нажать, а затем скопируйте его XPath.
Сопряжение этого XPath с ожидаемыми условиями IE: EC, ожидая максимума 10 секунд, пока не будет наличие элемента, мы автоматически заявили Python ждать, пока он не сможет найти под вопросом кнопки.
Как только он найдет, сохраните его в переменной, а затем мы можем сделать это плохо.
.Click () – одна из тех плохих вещей.
.send_keys. () другой (этот входной текст в поле формы)
Вы заметите, что я притворяюсь человеком, ожидая 2 секунды после заполнения формы поля. Легко притворяться человеком в реальном мире – в Python это просто чувствует себя заставленным.
Выполнение JS.
Иногда определенные элементы недоступны, пока вы не прокрутите их в виду. Таким образом, мы можем выполнить JavaScript и Fake, как мы на самом деле прокручиваем, как настоящий человек.
Веселая часть
Поэтому, когда мы получаем все пути по форме и понимаем, что нет назначений, нам говорят, что в будущем будет больше в будущем, но кто знает, когда.
Вот когда мы начинаем процесс и надеемся, что за последние 5 минут мы потратили, что-то стало доступно – поэтому мы пытаемся снова и снова.
Тебе известно, потому что…. Brexit через 25 дней.
Теперь для грубого, неправильно написанного теста.
Нет назначений и хорошего гражданина Интернета
На данный момент, когда большинство людей будут в панике и чувствовать себя спущенным, я просто прошу Python промыть и повторять.
Поэтому типичный сценарий состоит в том, что мы получаем сообщение (по-испански очевидно) каждый раз, когда нет назначения – если это произойдет
- Закройте браузер
- Подождите 2100 секунд (35 минут), чтобы попробовать еще раз и снова и снова и снова.
Почему я выбери 35 минут? Чтобы не повторно ударить на сайт, возможно, вызвав какого-то блокатора бота и в целом, просто будучи ответственным гражданином Интернета, не перегружая другие народные серверы с автоматизированными запросами.
Если честно, настоящие люди, вероятно, достигают этого сайта чаще всего, чем каждые 35 минут, чтобы обеспечить встречу, и я, наверное, будет – вручную, но да – ответственная автоматизация.
Однако Если не оказывается неверным назначениям, и что сообщение не отображается на странице, это означает, что есть встречи. В этом случае
- Расскажите MAC неоднократно кричать на максимальном объеме ” Назначение доступно “
- Изменить LetS_Go в false и выйти из программы.
8 часов жизни спасены
Всего эта программа была запущена в 7 утра и проработала через сайт каждые 35 минут до 3 вечера, постоянно ищет открытые встречи.
Я бы хотел автоматически забронировать в то время, который подходит мне, но без доступа к страницам бронирования я не смог найти «коды» для цели и автоматизации, поэтому это был лучший сценарий.
Оригинал: “https://dev.to/calvin087/how-i-saved-8-hours-automating-my-gov-appointment-hunt-using-python-selenium-4e81”