পরবর্তী সময়ে দুটি https অনুরোধ প্রেরণ করে আমি একটি লক্ষ্য পৃষ্ঠা থেকে এইচটিএমএল উপাদানগুলি পেতে একটি স্ক্রিপ্ট তৈরি করেছি। আমার স্ক্রিপ্টটি নির্বিঘ্নে জিনিসটি করতে পারে। যাইহোক, payload
লক্ষ্য পৃষ্ঠায় পৌঁছানোর জন্য চূড়ান্ত HTTP অনুরোধগুলি প্রেরণের জন্য আমাকে চারটি কী পূরণ করতে ক্রোম দেব সরঞ্জামগুলি থেকে চারটি মান কপি করতে হয়েছিল । এটি সূচনা লিঙ্ক এবং নীচে আমি কীভাবে লক্ষ্য পৃষ্ঠায় পৌঁছে যেতে পারি তার বর্ণনা নীচে দেওয়া হল।
- বাটনে ক্লিক করুন
Find Hotel
(তারিখেরchek-out
চেয়ে কমপক্ষে এক দিন লম্বা হলে পূর্বনির্ধারিত তারিখ পরিবর্তন করার দরকার নেইcheck-in
)। - নীচের চিত্রের মতো বাক্সটি টিক দিন এবং তার
Book Now
ঠিক উপরে বোতাম টিপুন । এখন, এটি স্বয়ংক্রিয়ভাবে আপনাকে লক্ষ্য পৃষ্ঠায় নিয়ে যেতে হবে। - হিসাবে শিরোনামযুক্ত লক্ষ্য পৃষ্ঠায় পৌঁছে
Enter Guest Details
, সেখান থেকে এইচটিএমএল উপাদানগুলি পার্স করুন
আমি চেষ্টা করেছি (এক কাজ করে):
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)
উপরে লিপিতে আমি কপি এবং এর মান আটকানো থাকেন CallFrom
, Btype
, PaxConfig
এবং usid
মধ্যে ব্যবহারের দেব এর সরঞ্জাম payload
।
পে-লোডের মধ্যে স্বয়ংক্রিয়ভাবে ব্যবহৃত মানগুলি কীভাবে পূরণ করতে পারি?
Btype
প্রথম ধাপ থেকে চয়ন করা বিকল্পগুলির সাথে মিল রেখে একটি গতিশীল মান হতে পারে। PaxConfig
যাত্রীরা বাচ্চাদের অন্তর্ভুক্ত করাতেও অন্য কোনও ফর্ম্যাটে থাকতে পারে।