メインコンテンツへスキップ
クローラーと対クローラーの戦いが激化する中、各大手ウェブサイトやアプリのリスク管理検出がますます強化されており、その一つがIP封禁です。 IP封禁の悩みを解決するための効果的な方法の一つは、プロキシを設定することです。プロキシを設定すると、クローラーはプロキシのIPを利用して自分の本当のIPアドレスを偽装し、対クローラーの制限を突破することができます。 しかし、プロキシの質には高低があり、市場に出回っている無料プロキシのほとんどは使用不可または封禁されている状態です。また、一部の有料の一般的なプロキシも徐々に各大手ウェブサイトやアプリのリスク管理ブラックリストに追加されています。したがって、現在高品質なデータクローリングに使用できるプロキシはますます少なくなっています。現在市場で質の高いプロキシとしては、専用プロキシ、ADSLプロキシ、モバイルセルラープロキシの3種類があります。 本プロキシサービスは、モバイルセルラーネットワーク(4G、5G)に基づくローテーションプロキシサービスです。本ドキュメントでは、このサービスの申請と使用方法について説明します。

モバイルセルラープロキシ

モバイルセルラープロキシは、実際には携帯電話のデータ通信に基づいて構築されたプロキシサービスで、すべてのプロキシIPは携帯電話の実際のIPです。この種のプロキシはクローラー分野での使用が比較的少ないため、封禁される確率も低く、したがってこの種のプロキシは、リスク管理が非常に厳しいウェブサイトやアプリのクローリングに非常に良い効果を発揮します。 本プロキシサービスは、大規模な群制御携帯電話プールに基づいて構築されたプロキシサービスで、すべてのトラフィックは純正の携帯電話のデータ通信を介して転送され、市場に出回っているほぼすべてのウェブサイトやアプリのデータリクエストをサポートし、プロキシの質は非常に高く、リスク管理の確率を大幅に減少させることができます。

申請方法

モバイルプロキシサービスを使用するには、まず「申請ページ」にアクセスして申請します。初回申請には1ポイントの無料枠があります。 まだログインしていない場合は、自動的にログインページにリダイレクトされ、ログイン後に申請を続けることができます。

使用方法

申請が完了したら、「コントロールパネル」で自分の申請結果を確認できます。以下のように表示されます: 「Credentials」をクリックすると、モバイルプロキシサービスのユーザー名とパスワードを確認できます。コロンで区切られており、ユーザー名は8桁、パスワードは32桁です。以下のように表示されます: このモバイルセルラープロキシはローテーションプロキシであるため、使用する際には固定のプロキシアドレスとポートを設定するだけで済みます。プロキシのアドレスとポートはそれぞれcellular.proxy.acedata.cloudと30000です。このプロキシはHTTP/HTTPS/SOCKSプロトコルのプロキシで、HTTPおよびHTTPSプロトコルのウェブサイトにリクエストを送信することができます。

コマンドテスト

プロキシのユーザー名とパスワードを取得したら、最も便利な方法はcurlコマンドラインを使用してテストすることです。まだインストールしていない場合は、https://curl.se/を参照してインストールしてください。 現在のプロキシのユーザー名とパスワードが1f78266a:eff0896726224fa2a99fe82dd1f07562であると仮定すると、以下のcurlコマンドを使用してテストできます:
curl -x 1f78266a:eff0896726224fa2a99fe82dd1f07562@cellular.proxy.acedata.cloud:30000 https://ipinfo.io
ここでは、curlの-xパラメータを使用してプロキシアドレスを指定しました。プロキシプロトコルはデフォルトでHTTP/HTTPSで、リクエストするURLはhttps://ipinfo.ioです。このサイトは、リクエストしたサイトの実際のIPアドレスとIPの所在地域を返すことができます。
注意:上記のユーザー名とパスワードは無効である可能性がありますので、自分のユーザー名とパスワードに置き換えてください。
実行結果は以下の通りです:
{
  "ip": "39.144.10.182",
  "city": "Shanghai",
  "region": "Shanghai",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS9808 China Mobile Communications Group Co., Ltd.",
  "postal": "200000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
返された結果のcountryはCNで、中国を示し、orgはChina Mobileで、中国のモバイルネットワークを示しています。確かにセルラープロキシの出口です。 再度実行すると、異なる結果が得られます。毎回のリクエストはランダムなIP出口になります。

コード接続

以下にPythonを例に、モバイルローテーションプロキシの設定方法を示します:
import requests

proxy = 'http://{proxy_username}:{proxy_password}@cellular.proxy.acedata.cloud:30000'

proxies = {
    'http': proxy,
    'https': proxy
}

for _ in range(3):
    resp = requests.get('https://ipinfo.io', proxies=proxies)
    print(resp.text)

ここでは、まずプロキシのURLを宣言し、proxy変数として定義します。プロトコルはhttpで、後にローテーションプロキシのユーザー名とパスワード(すなわちコントロールパネルに表示されるユーザー名とパスワード、二者はコロンで区切られます)を続け、次に@記号を付けてプロキシのアドレスとポートを指定します。 次に、proxies変数を宣言し、2つのキーと値のペアを設定します。キー名はそれぞれhttpとhttpsで、値はどちらもproxyで、HTTPおよびHTTPSプロトコルのウェブサイトに対しては、proxy変数で定義されたプロキシを使用してリクエストを行うことを示します。 その後、3回のループを定義してプロキシのテストを行います。ここでリクエストするURLはhttps://ipinfo.ioで、このサイトはリクエストしたサイトの実際のIPアドレスとIPの所在地域を返すことができます。 実行結果は以下の通りです:
{
  "ip": "39.144.18.26",
  "city": "上海",
  "region": "上海",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS9808 中国移动通信集团有限公司",
  "postal": "200000",
  "timezone": "亚洲/上海",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "39.144.18.26",
  "city": "上海",
  "region": "上海",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS9808 中国移动通信集团有限公司",
  "postal": "200000",
  "timezone": "亚洲/上海",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "39.144.182.55",
  "city": "湛江",
  "region": "广东",
  "country": "CN",
  "loc": "21.2339,110.3875",
  "org": "AS24445 河南移动通信有限公司",
  "postal": "524000",
  "timezone": "亚洲/上海",
  "readme": "https://ipinfo.io/missingauth"
}
見ることができるように、毎回実行する結果として得られるプロキシIPはランダムであり、IPが存在する地域は実際のモバイルトラフィックからのものであることが確かです。 もちろん、上記のプロキシ設定方法は実際には比較的簡潔な設定方法です。 実際、上記のコードはリクエスト時に追加のヘッダー - プロキシ認証を設定することと同等であるため、上記のコードは次のように書き換えることもできます:
import requests
import base64

proxy_host = 'cellular.proxy.acedata.cloud'
proxy_port = '30000'
proxy_username = '{proxy_username}' # 8桁のユーザー名
proxy_password = '{proxy_password}' # 32桁のパスワード

credentials = base64.b64encode(
    f'{proxy_username}:{proxy_password}'.encode()).decode()

proxies = {
    'http': f'http://{proxy_host}:{proxy_port}',
    'https': f'http://{proxy_host}:{proxy_port}'
}

headers = {
    'Proxy-Authorization': f'Basic {credentials}'
}

for _ in range(3):
    resp = requests.get('https://ipinfo.io',
                        proxies=proxies, headers=headers)
    print(resp.text)

ここでは、Proxy-Authorizationというリクエストヘッダーを通じてプロキシのユーザー名とパスワード(Base64エンコードが必要)を追加設定していることがわかります。このようなコードの実行効果も同じです。 他の言語、例えばJavaScriptのaxiosでも、同様の設定方法を使用できます:
const axios = require("axios");
const base64 = require("base64");

const proxy_host = "cellular.proxy.acedata.cloud";
const proxy_port = "30000";
const proxy_username = "{proxy_username}"; // 8桁のユーザー名
const proxy_password = "{proxy_password}"; // 32桁のパスワード

const credentials = base64.encode(`${proxy_username}:${proxy_password}`);

const proxies = {
  http: `http://${proxy_host}:${proxy_port}`,
  https: `http://${proxy_host}:${proxy_port}`,
};

const headers = {
  "Proxy-Authorization": `Basic ${credentials}`,
};

for (let i = 0; i < 3; i++) {
  axios
    .get("https://ipinfo.io", { proxies, headers })
    .then((resp) => console.log(resp.data))
    .catch((err) => console.error(err));
}
実行効果は同じです。 他の言語の設定方法については、上記を参考にして自分で書き換えてください。

もっと購入する

もしあなたのプランがすでに使い果たされている場合、引き続きこのプロキシサービスを使用するためには、もっと購入する必要があります。 もっと購入するには、「申請ページ」に直接アクセスし、「もっと購入」ボタンをクリックするだけで選択できます。一度の購入で多く購入するほど、単価が安くなります。