Criei um script para obter os elementos html de uma página de destino enviando duas solicitações https posteriormente. Meu script pode fazer a coisa na perfeição. No entanto, eu tive que copiar os quatro valores das ferramentas de desenvolvimento do chrome para preencher as quatro chaves dentro payload
para enviar as solicitações http finais para alcançar a página de destino. Este é o link inicial e a seguir, a descrição de como eu poderia alcançar a página de destino.
- Clique no
Find Hotel
botão (não é necessário alterar as datas se achek-out
data for padrão, pelo menos, um dia a mais que acheck-in
data). - Marque a caixa como na imagem abaixo e pressione o
Book Now
botão logo acima dela. Agora, ele deve levar você para a página de destino automaticamente. - Ao alcançar a página de destino intitulada como
Enter Guest Details
, analise os elementos html a partir daí
Eu tentei com (trabalhando um):
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)
No script acima Copiei e colei o valor de CallFrom
, Btype
, PaxConfig
e usid
de dev ferramentas para uso dentro payload
.
Como posso preencher os valores automaticamente para serem usados na carga útil?
Btype
pode ser um valor dinâmico correspondente às opções escolhidas na primeira etapa. PaxConfig
também pode estar em um formato diferente se os passageiros incluírem crianças.