#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)
он также работает, он немного хуже вашего, но он функционален;)