Scraping mit Tor in Python

Hinweis

: Warnung: In diesem Artikel wird nicht empfohlen, mit Tor zu kratzen.

Scraping ist grundsätzlich in Ordnung, aber Sie können sich schuldig machen, wenn dies durch die Nutzungsbedingungen der Zielwebsite verboten ist oder wenn Sie den Server der Zielwebsite überlasten.

Was ist Tor?

Es ist eine Technologie zur Anonymisierung der Verbindungsroute. Theoretisch ist es beim Zugriff mit Tor schwierig zu bestimmen, wer darauf zugegriffen hat.

Ausführungsumgebung

Homebrew 2.2.4
pip 20.0.2
Python 3.7.3

1. Holen Sie sich eine IP-Adresse

Lassen Sie uns zunächst die globale IP-Adresse ohne Tor überprüfen. Die globale IP-Adresse lautet hier. Wenn Sie Tor verwenden, können Sie den HTML-Code von hier abrufen. Du kannst nachschauen.

Es verwendet Beautiful Soup, also installieren Sie es bitte.

#Installieren Sie beautifulsoup4 mit pip
$ pip install beautifulsoup4
#Bestätigung
$ pip list | grep beautifulsoup4
beautifulsoup4 4.7.1
import urllib.request, urllib.error
from bs4 import BeautifulSoup

#Gibt HTML von der URL zurück
def fetch_html(url):
  res = urllib.request.urlopen(url)
  return BeautifulSoup(res, 'html.parser')

#Gibt die aktuelle globale IP-Adresse zurück
def get_ip_addr():
  html = fetch_html('http://checkip.dyndns.com/')
  return html.body.text.split(': ')[1]

#Gibt zurück, wenn Sie Tor verwenden
def check_use_tor():
  html = fetch_html('https://check.torproject.org/')
  return html.find('h1')['class'][0] != 'off'

print('You are using tor.' if check_use_tor() else 'You are not using tor.')
print('Current IP address is ' + get_ip_addr())

Ausführungsergebnis

You are not using tor.
Current IP address is XXX.XXX.XX.XXX

2. Installieren Sie Tor

Wenn Sie MacOS verwenden, können Sie es mit Homebrew installieren. Ich benutze auch "Brew Services Start", um es als Daemon zu starten.

$ brew install tor
$ brew services start tor
#Bestätigung
$ tor --version
Tor version 0.4.2.6.
$ brew services list | grep tor
tor started your_name /Users/your_name/Library/LaunchAgents/homebrew.mxcl.tor.plist

Führen Sie den folgenden Befehl aus, um Tor zu stoppen oder neu zu starten.

$ brew services stop tor
$ brew services reload tor

Obwohl in diesem Artikel nicht erwähnt, lautet die Konfigurationsdatei "/ usr / local / etc / tor / torc".

3. Durch Tor kratzen

Es verwendet PySocks, also installieren Sie es bitte.

$ pip install PySocks
#Bestätigung
$ pip list | grep PySocks
PySocks 1.7.1

Tor verwendet socks 5: // localhost: 9050 als Proxy, also füge dem Code in ** 1 Folgendes hinzu: **:

import socks, socket

socks.set_default_proxy(socks.PROXY_TYPE_SOCKS5, '127.0.0.1', 9050)
socket.socket = socks.socksocket

Ausführungsergebnis

You are using tor.
Current IP address is YY.YYY.YYY.YY

Stellen Sie sicher, dass die angezeigte globale IP-Adresse anders ist als bei der Ausführung auf ** 1. **. Die IP-Adresse bei Verwendung von Tor ändert sich in regelmäßigen Abständen.

Recommended Posts

Scraping mit Tor in Python
Schaben mit Selen in Python
Schaben mit Chromedriver in Python
Scraping mit Selen in Python
Scraping mit Python
Scraping mit Python
Scraping mit Selen in Python (Basic)
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Scraping mit Python + PhantomJS
Schaben mit Selen [Python]
Scraping mit Python + PyQuery
Scraping von RSS mit Python
Erreichen Sie das Scraping mit Python & CSS Selector in 1 Minute
Ich habe versucht, mit Python zu kratzen
Web Scraping mit Python + JupyterLab
Schaben mit Selen + Python Teil 1
[Python] Scraping in AWS Lambda
Betreiben Sie LibreOffice mit Python
Debuggen mit pdb in Python
Umgang mit Sounds in Python
Tweet mit Bild in Python
Kombiniert mit Ordnungszahl in Python
Kratzwettervorhersage mit Python
Schaben mit Selen + Python Teil 2
Ich habe versucht, mit Python zu kratzen
Web Scraping Anfänger mit Python
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
[Scraping] Python-Scraping
Zahlenerkennung in Bildern mit Python
Versuchen Sie es mit Python + Beautiful Soup
Testen mit Zufallszahlen in Python
Scraping mit Node, Ruby und Python
GOTO in Python mit erhabenem Text 3
CSS-Analyse mit cssutils in Python
Scraping mit Python, Selen und Chromedriver
Öffnen Sie UTF-8 mit Stückliste in Python
Kratzen mit schöner Suppe in 10 Minuten
Lassen Sie uns mit Python Image Scraping durchführen
Verwenden Sie Python in pyenv mit NeoVim
Heatmap mit Dendrogramm in Python + Matplotlib
Holen Sie sich Qiita-Trends mit Python-Scraping
Lesen Sie Dateien parallel zu Python
Passwort für Lehrbuch mit Python generieren
Verwenden Sie OpenCV mit Python 3 in Window
Bis zum Umgang mit Python in Atom
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Beginnen Sie mit Python mit Blender
Holen Sie sich Wetterinformationen mit Python & Scraping
Arbeiten mit DICOM-Bildern in Python
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Quadtree in Python --2
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
CURL in Python
Python-Scraping-Memo
Schaben mit Selen
FizzBuzz in Python3