Commit 7d9806b6 authored by wang's avatar wang

环境兼容

parent da3e5006
This diff is collapsed.
This diff is collapsed.
...@@ -5,20 +5,26 @@ import requests ...@@ -5,20 +5,26 @@ import requests
import json import json
import tls_client import tls_client
from bson import ObjectId from bson import ObjectId
import hashlib
from pymongo import MongoClient from pymongo import MongoClient
def md5(text):
m = hashlib.md5()
m.update(text.encode())
return m.hexdigest()
# 连接MongoDB数据库 # 连接MongoDB数据库
client = MongoClient('mongodb://lcc-spider:JIUsfhiad&^@18.144.59.80:27017/?authSource=admin&directConnection=true') client = MongoClient('mongodb://lcc-spider:JIUsfhiad&^@18.144.59.80:27017/?authSource=admin&directConnection=true')
db = client.env db = client.env
# 查询所有文档 # 查询所有文档
result = db.env_shape.find() # result = db.env_shape.find()
data = {str(x['_id']): x['env'] for x in result} # data = {str(x['_id']): x['env'] for x in result}
print(result) # print(result)
with open('env.json', 'w') as f: # with open('env.json', 'w') as f:
f.write(json.dumps(data)) # f.write(json.dumps(data))
with open('env.json', 'r') as f:
data = json.loads(f.read())
envs = data.keys() envs = data.keys()
session = tls_client.Session(client_identifier='chrome_110') session = tls_client.Session(client_identifier='chrome_110')
...@@ -27,25 +33,33 @@ session = tls_client.Session(client_identifier='chrome_110') ...@@ -27,25 +33,33 @@ session = tls_client.Session(client_identifier='chrome_110')
headers = { headers = {
"Host": "jbrest.jetblue.com", "Host": "jbrest.jetblue.com",
"application-channel": "Desktop_Web", "application-channel": "Desktop_Web",
"sec-ch-ua-platform": "\"macOS\"",
"sec-ch-ua-mobile": "?0",
"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", "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", "booking-application-type": "NGB",
"content-type": "application/json", "content-type": "application/json",
"accept": "application/json", "accept": "application/json",
"origin": "https://www.jetblue.com", "origin": "https://www.jetblue.com",
"sec-fetch-site": "same-site",
"sec-fetch-mode": "cors",
"sec-fetch-dest": "empty",
"accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7" "accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
} }
lastHash = ''
usedTime = 10
code = open('src.js', 'r').read()
for i in range(100): for i in range(100):
selectId = random.choice(list(envs)) selectId = random.choice(list(envs))
# selectId = 'ac22733c38ee66a568f17174' # selectId = 'ac22733c38ee66a568f17174'
c = requests.get('https://www.jetblue.com/js/src/jb-74873.js').text
m5 = md5(c)
if m5 != lastHash and usedTime > 5:
lastHash = m5
usedTime = 0
print('js变化')
with open('src_run1.js', 'w') as f:
f.write(code + '\n\n' + c)
t1 = time.time() t1 = time.time()
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message'] # r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
# r = requests.get('http://127.0.0.1:3001').json() # r = requests.get('http://127.0.0.1:3001').json()
p = subprocess.Popen(['node', 'js_dom_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE, # p = subprocess.Popen(['node', 'js_dom_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
p = subprocess.Popen(['node', 'src_run1.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE) stderr=subprocess.PIPE)
output, err = p.communicate(timeout=10) output, err = p.communicate(timeout=10)
tmp = '' tmp = ''
...@@ -58,6 +72,7 @@ for i in range(100): ...@@ -58,6 +72,7 @@ for i in range(100):
{'_id': ObjectId(selectId)}, {'_id': ObjectId(selectId)},
{"$inc": {"used": 1}} {"$inc": {"used": 1}}
) )
usedTime += 1
# r = { # r = {
# 'X-1ItxWO9i-f': 'A7AKCbCJAQAAV93ahgnafaQIeEbvT-Ss7YkuAnwrNQi_E70IpAViSqhv3hLLAXL3RNiucirJwH9eCOfvosJeCA==', # 'X-1ItxWO9i-f': 'A7AKCbCJAQAAV93ahgnafaQIeEbvT-Ss7YkuAnwrNQi_E70IpAViSqhv3hLLAXL3RNiucirJwH9eCOfvosJeCA==',
# 'X-1ItxWO9i-b': 'ewccp4', # 'X-1ItxWO9i-b': 'ewccp4',
...@@ -99,7 +114,7 @@ for i in range(100): ...@@ -99,7 +114,7 @@ for i in range(100):
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}' proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
# proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@198.147.25.26:{int(random.randint(10000, 11149))}' # 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' # proxy = 'http://user-unifflcc-region-us:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600'
# proxy = 'http://127.0.0.1:7890' proxy = 'http://127.0.0.1:7890'
session.proxies = { session.proxies = {
'http': proxy, 'http': proxy,
'https': proxy, 'https': proxy,
...@@ -118,6 +133,8 @@ for i in range(100): ...@@ -118,6 +133,8 @@ for i in range(100):
# }) # })
uri = 'http://ymx-lcc.unififi.com/header/add' uri = 'http://ymx-lcc.unififi.com/header/add'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
print(selectId, headers) print(selectId, headers)
r = requests.post(uri, json={ r = requests.post(uri, json={
'brush_fromto': 'LAS-BOS', 'brush_fromto': 'LAS-BOS',
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
No preview for this file type
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
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