ALERT!
Click here to register with a few steps and explore all our cool stuff we have to offer!
Other languages

irctc.co.in search tickets demo open source

Submitted by sysdemo at 22-03-2025, 02:43 AM


irctc.co.in search tickets demo open source
640 Views
sysdemo's Avatar'
sysdemo
Offline
#1
[ Hidden Content! ]

Code:
from math import fabs
from weakref import proxy
import requests
import json
import sys
import random
import string
import re
import urllib


# captcha api config on https://www.clearcaptcha.com
akamai_api="http://api.clearcaptcha.com/captcha/akamai_v2";
tls_api="http://api.clearcaptcha.com/captcha/tls";
token = 'test' # need replace your clearcaptcha token
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"
proxy="ip:port:user:pass"  # need replace your proxy

def tls_result(url,method,headers,body,user_agent,proxy, cookie="", redirect=True):
    
    data = {
        'token': token,
        'method': method,
        'url': url,
        'headers': json.dumps(headers),
        'body': body,
        'user_agent': user_agent,
        'proxy': proxy,
        'cookie': cookie,
        'allow_redirect': str(redirect).lower()
    }
    
    try:
        response = requests.post(tls_api, data=data, allow_redirects=redirect)
        return response.json()
    except requests.RequestException as e:
        print(str(e))
        sys.exit()
    
def akamai_result(abck, bm_sz, website, ua_ver="134.0.0.0"):
    data = {
        'token': token,
        'abck': abck,
        'bm_sz': bm_sz,
        'website': website,
        'ua_ver': ua_ver
    }
    try:
        response = requests.post(akamai_api, data=data)
        return response.json()
    except requests.RequestException as e:
        print(str(e))
        sys.exit()

def update_cookie(old_cookie: str, new_cookie: dict) -> str:
    old_cookie_dict = dict(item.split("=", 1) for item in old_cookie.split("; ") if "=" in item)
    new_cookie_list = new_cookie
    new_cookie_dict = dict(item.split("=", 1) for item in new_cookie_list if "=" in item)
    old_cookie_dict.update(new_cookie_dict)
    return "; ".join(f"{k}={v}" for k, v in old_cookie_dict.items())


session = requests.Session()
headers={
        'Connection': 'keep-alive',
        'User-Agent': user_agent,
        'Accept': '*/*',
        'Accept-Language': 'en-US,en;q=0.5',
        'Accept-Encoding': 'gzip, deflate, br',
        'Referer': 'https://www.irctc.co.in/nget/',
        'Origin': 'https://www.irctc.co.in',
        'sec-ch-ua': '"Google Chrome";v="134", "Not=A?Brand";v="8", "Chromium";v="134"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'Sec-Fetch-Dest': 'document',
        'Sec-Fetch-Mode': 'navigate',
        'Sec-Fetch-Site': 'same-origin',
        'Sec-Fetch-User': '?1',
        'Upgrade-Insecure-Requests': '1',
    }

response_data = tls_result("https://www.irctc.co.in/nget/train-search", "GET", headers, "", user_agent, proxy, "");

response_html = response_data["data"]["result"]
cookies = response_data["data"]["cookie"]
cookie_str = ''.join(cookies)

abck_match = re.search(r"_abck=(.*?);", cookie_str)
bm_sz_match = re.search(r"bm_sz=(.*?);", cookie_str)
abck = abck_match.group(1) if abck_match else None
bm_sz = bm_sz_match.group(1) if bm_sz_match else None


response_data = akamai_result(abck, bm_sz, "https://www.irctc.co.in", "134.0.0.0");
sensor_data = response_data["data"]["sensor_data"];
ua = response_data["data"]["ua"];



headers["User-Agent"]=ua
headers["Content-Type"]="text/plain;charset=UTF-8"

post_data={
    "sensor_data": sensor_data,
}
post_data=json.dumps(post_data)
response_data = tls_result("https://www.irctc.co.in/jHziu/zNXM/gBOq/RS/ur8Q8/X5Q9bp5Df5QXzE3h/dBkwGSAzdA/B2/ENDh5zYUYB", "POST", headers, post_data, user_agent, proxy, cookie_str);
response_html = response_data["data"]["result"]
cookies = response_data["data"]["cookie"]
if '{"success": true}' not in response_html:
    print('akamai verification failed!')
    sys.exit()
print('akamai verification successfully!')

cookie_str = update_cookie(cookie_str,cookies)

headers["Content-Type"]="application/json; charset=UTF-8"
headers["bmirak"]="webbm"
headers["Content-Language"]="en"
headers["greq"]="1742556231707"
post_data='{"concessionBooking":false,"srcStn":"MAS","destStn":"HWH","jrnyClass":"","jrnyDate":"20250401","quotaCode":"GN","currentBooking":"false","flexiFlag":false,"handicapFlag":false,"ticketType":"E","loyaltyRedemptionBooking":false,"ftBooking":false}'
response_data = tls_result("https://www.irctc.co.in/eticketing/protected/mapps1/altAvlEnq/TC", "POST", headers, post_data, user_agent, proxy, cookie_str);
response_html = response_data["data"]["result"]
if '"trainNumber":' in response_html:
    print(response_html)
else:
    print(f'Failed to get data! {response_html}')

0
Reply


Messages In This Thread
irctc.co.in search tickets demo open source - by sysdemo - 22-03-2025, 02:43 AM


Users browsing this thread: