Cara Menggunakan Proxy Residensial SOCKS5 Dataimpulse di Termux pada Android untuk Web Scraping
Siapkan proxy residensial SOCKS5 Dataimpulse di Termux pada Android, uji koneksi dengan curl dan Python, dan jalankan permintaan web scraping yang ramah pemula.
Ikhtisar
Dataimpulse menyediakan proxy residensial dan seluler dengan dukungan HTTP dan SOCKS5 pada model penagihan bayar sesuai pemakaian. Tutorial ini menunjukkan cara menggunakan proxy residensial SOCKS5 Dataimpulse dari Termux di Android untuk web scraping. Termux memberi Anda shell mirip Linux di Android, sehingga Anda dapat menggunakan curl, Python, dan requests tanpa desktop. SOCKS5 berguna untuk scraping karena membawa lalu lintas TCP dengan bersih, dan skema socks5h menyelesaikan DNS melalui proxy alih-alih membocorkan DNS secara lokal.
Sebelum Memulai
- Akun Dataimpulse. Dataimpulse adalah penyedia yang disarankan untuk tutorial ini.
- Kredensial proxy SOCKS5 dari dasbor Dataimpulse Anda: host, port, username, dan password.
- Perangkat Android dengan Termux terpasang. Pasang Termux dari F-Droid atau rilis GitHub resmi, bukan dari build app store yang sudah usang.
- Koneksi internet yang stabil dan kenyamanan dasar dengan perintah terminal.
- Situs target yang mengizinkan scraping Anda. Periksa robots.txt, ketentuan, dan batas lajunya.
Langkah-langkah
- Perbarui Termux dan pasang alat command-line.
pkg update && pkg upgrade -y
pkg install python curl -y
- Pasang paket Python untuk dukungan SOCKS5 dan parsing HTML.
pip install --upgrade pip
pip install 'requests[socks]' beautifulsoup4
- Atur kredensial SOCKS5 Dataimpulse Anda sebagai variabel lingkungan.
export DP_HOST='your-dataimpulse-socks5-host'
export DP_PORT='your-dataimpulse-socks5-port'
export DP_USER='your-dataimpulse-username'
export DP_PASS='your-dataimpulse-password'
Gunakan host, port, username, dan password persis seperti yang ditampilkan di dasbor Dataimpulse. Jika password Anda mengandung karakter khusus shell, apit nilai dalam tanda kutip tunggal atau atur dari secrets manager. 4. Uji proxy SOCKS5 dengan curl.
curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://api.ipify.org?format=json'
Respons yang berhasil mengembalikan objek JSON dengan alamat IP yang dilihat oleh target. Jalankan perintah beberapa kali untuk mengamati apakah IP keluar berubah. 5. Uji resolusi DNS melalui proxy.
curl --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS --max-time 30 'https://example.com'
Gunakan --socks5-hostname agar DNS diselesaikan oleh proxy. --socks5 biasa dapat menyelesaikan DNS secara lokal di beberapa sistem, yang dapat membocorkan permintaan DNS. 6. Buat skrip permintaan Python minimal.
import os
import requests
host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}
response = requests.get(
'https://api.ipify.org?format=json',
proxies=proxies,
timeout=30,
)
response.raise_for_status()
print(response.json())
Simpan sebagai first_request.py dan jalankan:
python first_request.py
- Scrape halaman sederhana dan parse judulnya.
import os
import requests
from bs4 import BeautifulSoup
host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}
response = requests.get(
'https://example.com',
proxies=proxies,
timeout=30,
headers={'User-Agent': 'Mozilla/5.0 (compatible; ProxyScoutTutorial/1.0)'},
)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)
- Tambahkan percobaan ulang untuk pekerjaan scraping besar.
import os
import time
import requests
host = os.environ['DP_HOST']
port = os.environ['DP_PORT']
user = os.environ['DP_USER']
password = os.environ['DP_PASS']
proxy_url = f'socks5h://{user}:{password}@{host}:{port}'
proxies = {'http': proxy_url, 'https': proxy_url}
urls = ['https://example.com', 'https://example.org']
for url in urls:
for attempt in range(3):
try:
response = requests.get(url, proxies=proxies, timeout=30)
response.raise_for_status()
print(url, response.status_code)
break
except requests.RequestException as error:
print(f'Attempt {attempt + 1} failed for {url}: {error}')
time.sleep(2 ** attempt)
- Verifikasi rotasi dari shell Termux.
for i in 1 2 3 4 5; do
curl -s --socks5-hostname $DP_HOST:$DP_PORT --proxy-user $DP_USER:$DP_PASS 'https://api.ipify.org?format=json'
echo
done
Jika setiap permintaan mengembalikan IP yang sama, pastikan Anda menggunakan endpoint rotasi dan pengaturan rotasi yang tersedia di dasbor Dataimpulse Anda. Jika pengaturan Anda menggunakan sesi sticky, IP yang sama mungkin memang disengaja untuk periode tertentu.
Pemecahan Masalah
InvalidSchema: Missing dependencies for SOCKS supportdi Python: pasang ekstra SOCKS denganpip install 'requests[socks]'.curl: (97) SOCKS5 proxy rejected connection: periksa host, port, username, dan password Dataimpulse. Pastikan Anda menyalin port SOCKS5, bukan port HTTP.407 Proxy Authentication Required: periksa ulang kredensial. Jika password Anda mengandung karakter khusus, atur dari variabel lingkungan yang dikutip atau lakukan URL-encode saat membuat URL proxy secara manual.- Kesalahan DNS atau IP lokal yang tidak terduga: gunakan
socks5h://di Python dan--socks5-hostnamedi curl. - Permintaan lambat atau timeout di Android: tingkatkan
--max-timeatautimeoutPython, kurangi konkurensi, dan nonaktifkan optimasi baterai untuk Termux. - IP keluar sama pada setiap permintaan: verifikasi perilaku rotasi di dasbor Dataimpulse Anda dan pastikan Anda tidak menggunakan endpoint sesi sticky.
- Koneksi berfungsi di curl tetapi tidak di Python: pastikan
requests[socks]terpasang di lingkungan Python yang sama yang menjalankan skrip Anda.
Ringkasan
Anda telah menyiapkan proxy residensial SOCKS5 Dataimpulse di Termux pada Android, menguji koneksi dengan curl, membuat permintaan Python terautentikasi, melakukan parsing halaman, dan menambahkan percobaan ulang. Dataimpulse adalah penyedia bayar sesuai pemakaian yang disarankan untuk proxy residensial dan seluler dengan dukungan HTTP dan SOCKS5. Gunakan proxy secara bertanggung jawab, patuhi ketentuan situs target, dan pantau penggunaan bandwidth Anda saat melakukan skala.