Scrapping Tor: python source code

From OnnoWiki
Jump to navigation Jump to search

Untuk melakukan web scraping melalui jaringan Tor di Kali Linux 2024.4 menggunakan Python, Anda dapat mengikuti langkah-langkah berikut:

1. Instalasi dan Konfigurasi Tor:

  • Instal Tor:
sudo apt-get update
sudo apt-get install tor
  • Konfigurasi Tor:

Edit file konfigurasi Tor untuk mengatur port SOCKS dan kontrol:

sudo nano /etc/tor/torrc

Tambahkan atau sesuaikan baris berikut:

SOCKSPort 9050
ControlPort 9051
HashedControlPassword your_hashed_password

Untuk membuat kata sandi yang di-hash, gunakan perintah:

tor --hash-password your_password
  • Mulai Layanan Tor:
sudo systemctl start tor
sudo systemctl enable tor

2. Instalasi Pustaka Python yang Diperlukan:

pip install requests[socks] beautifulsoup4 stem

3. Implementasi Kode Python untuk Web Scraping melalui Tor:

Berikut adalah contoh kode Python yang menggunakan Tor untuk melakukan web scraping:

import requests
from bs4 import BeautifulSoup
from stem import Signal
from stem.control import Controller
import time

# Fungsi untuk memperbarui alamat IP Tor
def renew_tor_ip():
    with Controller.from_port(port=9051) as controller:
        controller.authenticate(password='your_password')
        controller.signal(Signal.NEWNYM) 

# Fungsi untuk membuat sesi dengan proxy Tor
def get_tor_session():
    session = requests.Session()
    session.proxies = {
        'http': 'socks5h://127.0.0.1:9050',
        'https': 'socks5h://127.0.0.1:9050',
    }
    return session 

# Fungsi untuk melakukan scraping pada URL tertentu
def scrape_with_tor(url):
    renew_tor_ip()
    time.sleep(10)  # Tunggu agar IP baru diterapkan
    session = get_tor_session()
    response = session.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')
    return soup 

# Contoh penggunaan
url = 'http://example.onion'
soup = scrape_with_tor(url)
print(soup.prettify())


Penjelasan Kode:

  • `renew_tor_ip()`: Mengirim sinyal ke Tor untuk mendapatkan alamat IP baru.
  • `get_tor_session()`: Membuat sesi requests yang menggunakan proxy Tor.
  • `scrape_with_tor(url)`: Memperbarui IP Tor, menunggu sebentar, lalu melakukan permintaan HTTP ke URL yang ditentukan dan mengembalikan konten yang di-parse dengan BeautifulSoup.

Catatan Penting:

  • Etika dan Legalitas: Pastikan Anda mematuhi hukum dan peraturan yang berlaku saat mengakses dan mengumpulkan data dari web, terutama dari dark web. Selalu hormati ketentuan layanan situs web yang Anda akses.
  • Kinerja dan Stabilitas: Menggunakan Tor dapat memperlambat kecepatan koneksi karena rute lalu lintas melalui beberapa node. Selain itu, beberapa situs mungkin memblokir lalu lintas dari node keluar Tor.
  • Keamanan: Berhati-hatilah saat mengakses dark web. Pastikan sistem Anda terlindungi dan hindari mengakses atau mengunduh konten yang mencurigakan atau ilegal.

Untuk informasi lebih lanjut tentang scraping melalui Tor, Anda dapat merujuk ke sumber berikut:

- [Web Scraping with Tor and Python - ScrapingAnt](https://scrapingant.com/blog/web-scraping-tor-python)

- [How to Use Tor For Web Scraping - Scrapfly](https://scrapfly.io/blog/how-to-use-tor-for-web-scraping/)

Selalu lakukan due diligence dan pastikan Anda memahami risiko serta tanggung jawab yang terkait dengan aktivitas web scraping melalui jaringan Tor.

Pranala Menarik