Ich habe ein Skript erstellt, um die HTML-Elemente von einer Zielseite abzurufen, indem anschließend zwei https-Anforderungen gesendet werden. Mein Skript kann das Ding einwandfrei machen. Ich musste jedoch die vier Werte aus den Chrome-Entwicklungstools kopieren, um die vier darin enthaltenen Schlüssel auszufüllen und payloaddie endgültigen http-Anforderungen zu senden, um die Zielseite zu erreichen. Dies ist der Startlink und im Folgenden wird beschrieben, wie ich die Zielseite erreichen kann.
- Klicken Sie auf die
Find HotelSchaltfläche (chek-outDatum muss nicht geändert werden, wenn das Datum standardmäßig mindestens einen Tag länger als dascheck-inDatum ist). - Aktivieren Sie das Kontrollkästchen wie im Bild unten und drücken Sie die
Book NowTaste direkt darüber. Jetzt sollte es Sie automatisch zur Zielseite führen. - Wenn Sie die Zielseite mit dem Titel als erreicht haben
Enter Guest Details, analysieren Sie die HTML-Elemente von dort aus
Ich habe versucht mit (Arbeit):
import requests
from bs4 import BeautifulSoup
url = 'https://booking.discoverqatar.qa/SearchHandler.aspx?'
second_url = 'https://booking.discoverqatar.qa/PassengerDetails.aspx?'
params = {
'Module':'H','txtCity':'','hdnCity':'2947','txtHotel':'','hdnHotel':'',
'fromDate':'05/11/2019','toDate':'07/11/2019','selZone':'','minSelPrice':'',
'maxSelPrice':'','roomConfiguration':'2|0|','noOfRooms':'1',
'hotelStandardArray':'63,60,54,50,52,51','CallFrom':'','DllNationality':'-1',
'HdnNoOfRooms':'-1','SourceXid':'MTEzNzg=','mdx':''
}
payload = {
'CallFrom':'MToxNjozOCBQTXxCMkN8MToxNjozOCBQTQ==',
'Btype':'MToxNjozOCBQTXxBfDE6MTY6MzggUE0=',
'PaxConfig':'MToxNjozOCBQTXwyfDB8MnwwfHwxOjE2OjM4IFBN',
'usid':'MToxNjozOCBQTXxoZW54dmkzcWVnc3J3cXpld2lsa2ZwMm18MToxNjozOCBQTQ=='
}
with requests.Session() as s:
r = s.get(url,params=params,headers={"User-agent":"Mozilla/5.0"})
res = s.get(second_url,params=payload,headers={
"User-agent":"Mozilla/5.0",
"Referer":r.url
})
soup = BeautifulSoup(res.text,'lxml')
print(soup)
In dem obigen Skript habe ich kopiert und den Wert eingefügt CallFrom, Btype, PaxConfigund usidvon Entwickler - Tool zur Verwendung innerhalb payload.
Wie kann ich die Werte automatisch eingeben, die innerhalb der Nutzlast verwendet werden sollen?
Btypemöglicherweise ein dynamischer Wert ist, der den im ersten Schritt ausgewählten Optionen entspricht. PaxConfigkann auch in einem anderen Format vorliegen, wenn Passagiere Kinder enthalten.
