Skip to main content
In the escalating battle between web crawlers and anti-crawling measures, the risk control detection of major websites and apps has become increasingly stringent, one of which is IP banning. To address the issue of IP bans, an effective method is to set up a proxy. After setting up a proxy, the crawler can use the proxy’s IP to disguise its real IP address, thereby bypassing anti-crawling restrictions. However, the quality of proxies varies; for instance, most free proxies available on the market are either unusable or banned, and some paid ordinary proxies have also been added to the risk control blacklists of major websites and apps. Therefore, the number of high-quality proxies available for data scraping is decreasing. Currently, the main types of high-quality proxies on the market include dedicated proxies, ADSL proxies, and mobile cellular proxies. This proxy service is based on ADSL and is a rotating proxy service. This document will introduce the application and usage methods for this service.

ADSL Proxy Introduction

ADSL, which stands for Asymmetric Digital Subscriber Line, is a type of digital subscriber line technology. ADSL connects to the internet via dial-up, requiring an ADSL account and password for each connection, changing the IP address with each dial-up. The IPs are distributed across multiple A segments, and if all IPs are usable, it means the IP pool can reach tens of millions. Compared to ordinary proxies set up in data centers, proxies built on ADSL have two advantages: first, the lines are primarily from mobile, Unicom, and telecom, which are closer to the daily internet lines of residents, thus reducing the probability of IP bans. Second, the larger the IP pool, the smaller the probability of each IP being banned. This proxy service is backed by a large-scale ADSL proxy pool, mainly covering Chinese lines, with lines primarily sourced from dial-up VPS servers of mobile, Unicom, and telecom, covering over 100 cities in China, with approximately 300,000 outbound IPs daily. It supports data requests from almost all websites and apps on the market, with high proxy quality that significantly reduces the risk control probability.

Application Method

To use the ADSL service, you can first go to the “Application Page” to apply. The first application comes with a free quota of 1 point, approximately 17.5MB. If you are not logged in, you will be automatically redirected to the login page. After logging in, you can continue with the application. Once the application is completed, you can check your application results in the “Console,” as shown in the image: Click on “Credentials” to view the username and password for using the ADSL proxy service, separated by a colon, where the username is 8 characters long and the password is 32 characters long, as shown in the image: This ADSL proxy is a rotating proxy, so when using it, you only need to set a fixed proxy address and port. The proxy address and port are adsl.proxy.acedata.cloud and 30005, respectively, and it supports HTTP/HTTPS/SOCKS protocols, which can be used to access websites using HTTP and HTTPS protocols.

Command Testing

Once you have the proxy username and password, the easiest way to test is through the curl command line. If you haven’t installed it yet, please refer to https://curl.se/ for installation. If the current proxy username and password are 1f78266a:eff0896726224fa2a99fe82dd1f07562, you can test it using the following curl command:
curl -x 1f78266a:eff0896726224fa2a99fe82dd1f07562@adsl.proxy.acedata.cloud:30005 https://ipinfo.io
Here, we use curl’s -x parameter to specify the proxy address. The default proxy protocol is HTTP/HTTPS, and the requested URL is https://ipinfo.io, which can return the real IP address and the geographical location of the IP making the request. The output will be as follows:
{
  "ip": "183.210.224.227",
  "city": "Jinrongjie",
  "region": "Beijing",
  "country": "CN",
  "loc": "39.9122,116.3561",
  "org": "AS56046 China Mobile communications corporation",
  "postal": "101100",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}

Code Integration

Below is an example of how to set up the proxy using Python:
import requests

proxy = 'https://{proxy_username}:{proxy_password}@adsl.proxy.acedata.cloud:30005'

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

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

Here, we first declare the proxy URL and define it as the proxy variable, with the protocol being HTTP, followed by the username and password for the tunnel proxy (as displayed in the console, separated by a colon), followed by an @ symbol, and then the proxy address and port. Next, we declare a proxies variable, configuring two key-value pairs, with the keys being http and https, both pointing to the proxy variable, indicating that for both HTTP and HTTPS websites, requests will be made using the proxy defined in the proxy variable. Then, we define a loop to test the proxy three times, with the requested URL being https://ipinfo.io, which can return the real IP address and the geographical location of the IP making the request. The output will be as follows:
{
  "ip": "211.93.135.114",
  "city": "Shanghai",
  "region": "Shanghai",
  "country": "CN",
  "loc": "31.2222,121.4581",
  "org": "AS4837 CHINA UNICOM China169 Backbone",
  "postal": "200000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "112.22.109.176",
  "city": "Nanjing",
  "region": "Jiangsu",
  "country": "CN",
  "loc": "32.0617,118.7778",
  "org": "AS56046 China Mobile communications corporation",
  "postal": "210000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
{
  "ip": "39.162.179.215",
  "city": "Yangzhou",
  "region": "Jiangsu",
  "country": "CN",
  "loc": "32.3972,119.4358",
  "org": "AS24445 Henan Mobile Communications Co.,Ltd",
  "postal": "225000",
  "timezone": "Asia/Shanghai",
  "readme": "https://ipinfo.io/missingauth"
}
It can be seen that the proxy IP obtained each time the program runs is random, and the IP’s location indeed comes from different provinces and cities in China. Of course, the proxy setup method mentioned above is actually a relatively simple setup. In fact, the above code is equivalent to setting an additional header - Proxy Authorization during the request, so the above code can also be rewritten as follows:
import requests
import base64

proxy_host = 'adsl.proxy.acedata.cloud'
proxy_port = '30005'
proxy_username = '{proxy_username}' # 8-character username
proxy_password = '{proxy_password}' # 32-character password

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)

It can be seen that here we set the proxy username and password through the Proxy-Authorization request header (which needs to be Base64 encoded), and the running effect of such code is the same. For other languages, such as JavaScript’s axios, a similar setup method can also be used:
const axios = require("axios");
const base64 = require("base64");

const proxy_host = "adsl.proxy.acedata.cloud";
const proxy_port = "30005";
const proxy_username = "{proxy_username}"; // 8-character username
const proxy_password = "{proxy_password}"; // 32-character password

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));
}
The running effect is the same. For the setup methods of other languages, please refer to the above text for self-rewriting.

Purchase More

If your plan has been exhausted, you need to purchase more to continue using the proxy service. To purchase more, please go to the “Application Page” and directly click the “Purchase More” button to select, the more you purchase at once, the cheaper the unit price.