Saya telah membuat skrip untuk mendapatkan elemen html dari halaman target dengan mengirimkan dua permintaan https selanjutnya. Script saya dapat melakukan hal itu dengan sempurna. Namun, saya harus menyalin empat nilai dari alat dev chrome untuk mengisi empat kunci di payloaddalam untuk mengirim permintaan http akhir untuk mencapai halaman target. Ini adalah tautan awal dan berikut adalah uraian bagaimana saya dapat mencapai halaman target.
- Klik
Find Hoteltombol (tidak perlu mengubah tanggal jikachek-outtanggal secara default setidaknya satu hari lebih lama daricheck-intanggal). - Centang kotak seperti gambar di bawah ini dan tekan
Book Nowtombol tepat di atasnya. Sekarang, itu akan mengarahkan Anda ke halaman target secara otomatis. - Setelah mencapai halaman target berjudul
Enter Guest Details, parsing elemen html dari sana
Saya sudah mencoba (bekerja):
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)
Dalam script di atas saya sudah disalin dan disisipkan nilai CallFrom, Btype, PaxConfigdan usiddari dev alat untuk digunakan di dalam payload.
Bagaimana saya bisa mengisi nilai secara otomatis untuk digunakan dalam muatan?
Btypemungkin nilai dinamis yang sesuai dengan opsi yang dipilih dari langkah pertama. PaxConfigmungkin juga dalam format yang berbeda jika penumpang menyertakan anak-anak.
