В настоящее время я создаю базового веб-мастера, который получает цены на билеты на поезд от National Rail с использованием Python и MechanicalSoup.
Я пытаюсь заполнить форму, используя основные данные о поездах (начало иконечная станция, а также дата и время), поэтому у меня будет доступ к ценам на билеты на конкретную поездку на поезде.
Вот код, который я использовал для заполнения формы
import requests
from bs4 import BeautifulSoup
from bs4 import BeautifulSoup as Soup
import mechanicalsoup
#Mechanical soup
browser = mechanicalsoup.StatefulBrowser()
browser.open("http://www.nationalrail.co.uk/")
#Find the correct form
trainForm = browser.select_form('form[action="http://ojp.nationalrail.co.uk/service/planjourney/plan"]')
#Basic parameters (start and end, and date and time)
browser["from.searchTerm"] = "Norwich"
browser["to.searchTerm"] = "London Liverpool Street"
browser["timeOfOutwardJourney.monthDay"] = "28/11/2018"
browser["timeOfOutwardJourney.hour"] = 13
browser["timeOfOutwardJourney.minute"] = 15
browser["_checkbox"] = "off"
#Submit the form
browser.launch_browser()
response = browser.submit_selected()
#print the response
print(response)
Проблема, с которой я столкнулся, заключается в том, что при отправке формы она возвращает <Response [400]>
.Исследования привели меня к мысли, что моя форма заполнена неправильно.Однако при выполнении browser.launch_browser()
и открытии моего браузера все поля выглядят так, как будто они заполнены правильно, и если я нажимаю «Отправить», то форма отправляется правильно, и открывается правильная страница с ценами на билеты.
Кто-нибудь знает, что я делаю не так?