Commit 660719b3 authored by wang's avatar wang

收集更多信息

parent 9ee98f95
FROM python:3.10.1-slim-bullseye
RUN mkdir -p "/home/opt/lcc-b6"
RUN apt update &&apt install curl -y
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
RUN apt install nodejs
COPY src/ /home/opt/lcc-b6
WORKDIR /home/opt/lcc-b6/
RUN cd /home/opt/lcc-b6/ && npm i
RUN pip3 install requests loguru curl_cffi tls_client pyquery nacos-sdk-python pyyaml
CMD ["python3", "jetblue.py"]
import platform
import random
import re
import subprocess
import time
import loguru
import requests
import json
import tls_client
from bson import ObjectId
import hashlib
from pymongo import MongoClient
from loguru import logger
def md5(text):
m = hashlib.md5()
m.update(text.encode())
return m.hexdigest()
# 连接MongoDB数据库
client = MongoClient('mongodb://lcc-spider:JIUsfhiad&^@18.144.59.80:27017/?authSource=admin&directConnection=true')
db = client.env
# 查询所有文档
# result = db.env_shape.find({'env.funcs' :{'$ne': None}})
# data = {str(x['_id']): x['env'] for x in result}
# print(result)
# with open('env.json', 'w', encoding='utf-8') as f:
# f.write(json.dumps(data))
with open('env.json', 'r', encoding='utf-8') as f:
data = json.loads(f.read())
envs = data.keys()
# session = requests.session()
headers = {
"Host": "jbrest.jetblue.com",
"application-channel": "Desktop_Web",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"booking-application-type": "NGB",
"content-type": "application/json",
"accept": "application/json",
"origin": "https://www.jetblue.com",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
}
# tlss = [ 'chrome_103', 'chrome_104', 'chrome_105', 'chrome_106',
# 'firefox_102', 'firefox_104'
# Opera --> opera_89, opera_90
# 'safari_15_3', 'safari_15_6_1', 'safari_16_0',
# 'safari_ios_15_5', 'safari_ios_15_6', 'safari_ios_16_0',
# 'safari_ios_15_6'
# ]
while True:
r = requests.get('http://ymx-lcc.unififi.com/header/task/pull/headerB6?brush_name=test')
if r.json()['status'] != 0:
logger.debug(f'不需要刷值')
time.sleep(10)
continue
logger.debug('开始刷值')
selectId = random.choice(list(envs))
lastHash = ''
usedTime = 10
success = 0
total = 0
selectId = random.choice(list(envs))
code = open('src.js', 'r', encoding='utf-8').read()
code1 = open('js_dom_run.js', 'r', encoding='utf-8').read()
for i in range(30):
try:
# selectId = '55a8fe24a752595e774341d6'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = f'http://ynfflcc2023.hotmail.com:gdcfh9@69.30.227.194:{random.randint(20001, 20250)}'
# proxy = f'http://user-uni003-region-us-sessid-${random.randint(1000,5000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# if platform.uname().system == 'Darwin':
# proxy = 'http://127.0.0.1:7890'
tlsV = f'chrome_{random.randint(105, 113)}'
tlsV = 'chrome_112'
session = tls_client.Session(tlsV)
session.proxies = {
'http': proxy,
'https': proxy,
}
# selectId = 'a74b38e7115cf4d1b1f6976c'
c = session.get('https://www.jetblue.com/js/src/jb-74873.js', insecure_skip_verify=True).text
m5 = md5(c)
if m5 != lastHash and usedTime > 5:
lastHash = m5
usedTime = 0
logger.debug('js变化')
token = re.findall('nt"\),\["(.+?)",', c)[0]
db.token_shape.insert_one({
'_id': token,
'update_time': int(time.time() * 1000)
})
code = open('src.js', 'r', encoding='utf-8').read()
code1 = open('js_dom_run.js', 'r', encoding='utf-8').read()
with open('src_run1.js', 'w', encoding='utf-8') as f:
f.write(code + '\n\n' + c)
# # with open('js_dom_run1.js', 'w', encoding='utf-8') as f:
# # f.write(code1 + '\n\n' + c)`
t1 = time.time()
token = list(db.token_shape.aggregate( [ { '$sample': { 'size': 1 } } ] ))[0]['_id']
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
# r = requests.get('http://127.0.0.1:3001').json()
# p = subprocess.Popen(['node', 'js_dom_run.js', selectId, '11'], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run_chrome_105.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
# p = subprocess.Popen(['node', 'src_run_company_chrome.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
p = subprocess.Popen(['node', 'src_run1.js', selectId, '11', token], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
output, err = p.communicate(timeout=10)
tmp = ''
if p.returncode == 0:
tmp = output.decode().split('\n')[-2]
else:
raise Exception(selectId)
r = json.loads(tmp)
# res = db.env_shape.update_one(
# {'_id': ObjectId(selectId)},
# {"$inc": {"used": 1}}
# )
usedTime += 1
headers.update(r)
# headers = r
logger.info(f"success:{success} total:{total} {(time.time() - t1) *1000:.3f}ms {len(headers['X-1ItxWO9i-a'.lower()])} {selectId} {headers['user-agent']}")
logger.info(f"success:{success} proxy: {proxy} token: {token}")
url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
data = {
"tripType": "oneWay",
"from": "LAS",
"to": "BOS",
"depart": "2023-05-10",
"cabin": "economy",
"refundable": False,
"dates": {
"before": "3",
"after": "3"
},
"pax": {
"ADT": 1,
"CHD": 0,
"INF": 0,
"UNN": 0
},
"redempoint": False,
"pointsBreakup": {
"option": "",
"value": 0
},
"isMultiCity": False,
"isDomestic": False
}
#
# # session = requests.Session()
#
response = session.post(url, headers=headers, json=data, insecure_skip_verify=True)
logger.info(f'tls:{tlsV} proxy:{proxy} res:: {response.status_code}')
# total += 1
# # print(response.text)
if response.status_code != 403:
res = db.env_shape.update_one(
{'_id': ObjectId(selectId)},
{"$inc": {"success": 1}}
)
# proxy = requests.post('http://ymx-lcc.unififi.com/proxy/get-proxy', json={
# 'type':'headerB6'
# })
uri = 'http://ymx-lcc.unififi.com/header/add'
# uri = 'http://52.52.23.116/header/add'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10042'
# proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
r = requests.post(uri, json={
'brush_fromto': 'LAS-BOS',
'brush_fromdate': '2023-05-26',
'brush_header': headers,
'brush_proxy': proxy,
'brush_mode': 'shopping',
'brush_name': 'js2',
'brush_type': 'headerB6',
})
success += 1
logger.success(f'添加成功 {success}')
# time.sleep(3)
except Exception as e:
print(e)
time.sleep(10)
This diff is collapsed.
{
"name": "shape-bypass",
"version": "1.0.0",
"description": "",
"main": "ast.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"abab": "^2.0.5",
"acorn": "^8.4.1",
"acorn-globals": "^6.0.0",
"canvas": "^2.11.2",
"cssom": "^0.5.0",
"cssstyle": "^2.3.0",
"data-urls": "^3.0.0",
"decimal.js": "^10.3.1",
"domexception": "^2.0.1",
"escodegen": "^2.0.0",
"express": "^4.18.2",
"fingerprint-generator": "^2.1.37",
"form-data": "^4.0.0",
"ghost-cursor": "^1.1.18",
"html-encoding-sniffer": "^2.0.1",
"http-proxy-agent": "^4.0.1",
"https-proxy-agent": "^5.0.0",
"is-potential-custom-element-name": "^1.0.1",
"isolated-vm": "^4.6.0",
"nwsapi": "^2.2.0",
"parse5": "6.0.1",
"saxes": "^5.0.1",
"superpack": "^2.3.0",
"symbol-tree": "^3.2.4",
"tough-cookie": "^4.0.0",
"w3c-hr-time": "^1.0.2",
"w3c-xmlserializer": "^2.0.0",
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^9.0.0",
"ws": "^8.0.0",
"xml-name-validator": "^3.0.0"
}
}
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment