乐趣区

关于爬虫:Shape-F5-参数-西南航空

西南航空 F5 Shape 如何生成?

这几天西南航空的风控大幅度加强,咱们优化后的 6.0.0 版本并没有收到这次风控等级降级的影响。
Shape 风控会在申请头中退出 ee30zvqlwf-a、ee30zvqlwf-b、ee30zvqlwf-c、ee30zvqlwf-d、ee30zvqlwf-f、ee30zvqlwf-z 参数,通过这些参数对环境进行检测,并判断出是否是实在用户的流量。

接入 Demo

# -*- coding: utf-8 -*-
# @Time    : 2023/3/28 6:50 AM
# @Author  : TiggerRun
# 接入案例
# 🌍:TGRUN000
# 🌍:TGRUN001

import  requests
import  threading
import  random
import json

url = api + '/search_flight'

airport = ["ALB", "ABQ", "AMA", "AUA", "ATL", "AUS"]

def get_flight_data():
    while(True):
        try:
            # 发送搜寻申请体,和 wn 接口的申请形式统一
            payload = '{"body": {"adultPassengersCount":"1","adultsCount":"1","departureDate":"2023-04-05","departureTimeOfDay":"ALL_DAY","destinationAirportCode":"' + random.choice(airport) + '","fareType":"USD","int":"HOMEQBOMAIR","originationAirportCode":"' + random.choice(airport) + '","passengerType":"ADULT","reset":"true","returnDate":"2023-04-06","returnTimeOfDay":"ALL_DAY","tripType":"roundtrip","application":"air-booking","site":"southwest"}}'
            res = requests.post(url=url, headers={
                "content-type": "application/json",
                "connection": "close"
            }, data=payload, timeout=10)
            if res.status_code == 500:
                print("申请频繁.")
            elif res.status_code == 403:
                print("返回谬误的状态码 403")
            elif res.status_code == 400 or res.status_code == 200:
                wn_data = json.loads(res.text)['data']['body']
                print("返回数据", wn_data)
        except Exception as ex:
            pass

# create 10 thread
for i in range(10):
    t = threading.Thread(target=get_flight_data)
    t.start()

风控的特点

  1. 蜜罐:在风控不高的时候,往往会让谬误的 headers 通过申请,看似曾经绕过了 Shape,实际上并有,Shape 往往会误导你的想法。
  2. 检测动态变化:Shape 中蕴含一个有自定义解析器的虚拟环境,称之为虚拟化爱护(VMP),这使得测试十分艰难。
  3. 风控等级动态变化:在没有风控时,成功率简直为 100%,当网站风控等级晋升时,真人的搜寻都可能被回绝。
  4. 底层检测:在咱们的测试中,发现存在一些底层的检测,而不仅仅停留在 TLS。

长处

  1. 不须要短效 IP,获取数据的代理开销小(月均¥1000 代理)
  2. 咱们曾在 1 条 IP 中进行测试,咱们的 headers 能够获取上万条数据(!!!!仅 1 条代理!!!)
  3. 目前反对每家 /10 线程获取数据(每小时大略 1w 条无效数据),数据返回工夫均匀在 1 - 2 秒,如需扩增线程能够另外进行购买。
  4. 可 7 *24 小时获取实时数据
  5. 接口进行了封装,申请航司更加便捷
  6. 在咱们最新的框架中,绕过 Shape 的代码仅有 200 行,易于保护。

后盾展现

以下是部署的服务,成功率取决于 IP 的品质

# -*- coding: utf-8 -*-
# @Time    : 2023/3/28 6:50 AM
# @Author  : TiggerRun
# 接入案例
# 🌍:TGRUN000
# 🌍:TGRUN001
退出移动版