Python Selenium — Изменить Дату Url-Адреса

#python #selenium #selenium-webdriver

Вопрос:

Я пытаюсь изменить дату регистрации и оформления заказа по следующему URL-адресу: https://www.booking.com/hotel/fr/le-leman.fr.html?label=gen173nr-1DCAEoggI46AdIM1gEaCyIAQGYAQ24ARjIAQzYAQPoAQGIAgGoAgS4AuGugoYGwAIB0gIkODQyNzI0MzUtNzlmZi00ZTY1LWJkNGUtZmQyMGIxMGE3NzJl2AIE4AIB;sid=1a1526834c348b388f7097913631c2e3;checkin=2021-06-09;checkout=2021-06-10;sig=v11C1wtOKO

Я подумал об использовании правила регулярных выражений для установки сегодняшней даты:

 d = datetime.date.fromordinal(datetime.date.today().toordinal()-0).strftime("%m/%d/%Y")
url = driver.current_url
regex = r"^d{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$"
result = re.sub(regex, d, url, 0)
if result:
    print (result)

 

Но это не работает.

Спасибо вам за внимание.

PS : ИЗВИНИТЕ, у меня плохой английский..

Ответ №1:

Для этого вам не нужно регулярное выражение, вы можете просто попробовать это:

 import datetime

checkin_date = datetime.date.fromordinal(datetime.date.today().toordinal()-0).strftime("%Y-%m-%d")
checkout_date = datetime.date.fromordinal(datetime.date.today().toordinal()-0).strftime("%Y-%m-%d")
url = "https://www.booking.com/hotel/fr/le-leman.fr.html?label=gen173nr-1DCAEoggI46AdIM1gEaCyIAQGYAQ24ARjIAQzYAQPoAQGIAgGoAgS4AuGugoYGwAIB0gIkODQyNzI0MzUtNzlmZi00ZTY1LWJkNGUtZmQyMGIxMGE3NzJl2AIE4AIB;sid=1a1526834c348b388f7097913631c2e3;checkin=" checkin_date ";checkout=" checkout_date ";sig=v11C1wtOKO"
print(url)
 

И вы можете указать переменные checkin_date и checkout_date нужное значение, а затем просто использовать URL-адрес.

Ответ №2:

Очень полезно, я пробую что-то другое и все еще хорошо работаю.

     # Selectionne la date d'aujourd'hui au format compatible booking
d = datetime.date.fromordinal(datetime.date.today().toordinal() 1).strftime("%Y-%m-%d")
# Selectionne la date d'aujourd'hui  n au format compatible booking
d1 = datetime.date.fromordinal(datetime.date.today().toordinal() 2).strftime("%Y-%m-%d")
# Variable pour préparer le changement sur booking
dformat = 'checkin='   d
d1format = 'checkout='   d1
# Selectionne l'url actuelle
url = driver.current_url
#Remplace le text de la date par la nouvelle
url = url.replace("checkin=2021-06-02", dformat)
url = url.replace("checkout=2021-06-03", d1format)
driver.get(url)
 

он также работает, он немного хуже вашего, но он функционален;)