Grattage avec Tor en Python

Mise en garde

: avertissement: cet article ne recommande pas de gratter avec Tor.

Le grattage est fondamentalement bien, mais vous pouvez être coupable s'il est interdit par les conditions d'utilisation du site cible ou si vous surchargez le serveur du site cible.

Qu'est-ce que Tor

C'est une technologie pour anonymiser l'itinéraire de connexion. En théorie, lorsqu'il est accédé à l'aide de Tor, il est difficile de déterminer qui y a accédé.

Environnement d'exécution

Homebrew 2.2.4
pip 20.0.2
Python 3.7.3

1. Obtenez une adresse IP

Tout d'abord, vérifions l'adresse IP globale sans Tor. L'adresse IP globale est ici, et si vous utilisez Tor, vous pouvez obtenir le HTML depuis ici. Tu peux vérifier.

Il utilise Beautiful Soup, veuillez donc l'installer.

#Installez beautifulsoup4 avec pip
$ pip install beautifulsoup4
#Vérification
$ pip list | grep beautifulsoup4
beautifulsoup4 4.7.1
import urllib.request, urllib.error
from bs4 import BeautifulSoup

#Renvoie le HTML de l'URL
def fetch_html(url):
  res = urllib.request.urlopen(url)
  return BeautifulSoup(res, 'html.parser')

#Renvoie l'adresse IP globale actuelle
def get_ip_addr():
  html = fetch_html('http://checkip.dyndns.com/')
  return html.body.text.split(': ')[1]

#Renvoie si vous utilisez Tor
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())

Résultat d'exécution

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

2. Installez Tor

Si vous utilisez MacOS, vous pouvez l'installer avec Homebrew. J'utilise également brew services start pour le démarrer en tant que démon.

$ brew install tor
$ brew services start tor
#Vérification
$ 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

Pour arrêter Tor ou le redémarrer, exécutez la commande suivante.

$ brew services stop tor
$ brew services reload tor

En outre, bien que non mentionné dans cet article, le fichier de configuration est / usr / local / etc / tor / torc.

3. Grattage à travers Tor

Il utilise PySocks, veuillez donc l'installer.

$ pip install PySocks
#Vérification
$ pip list | grep PySocks
PySocks 1.7.1

Tor utilise socks 5: // localhost: 9050 comme proxy, alors ajoutez ce qui suit au code dans ** 1. **:

import socks, socket

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

Résultat d'exécution

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

Assurez-vous que l'adresse IP globale affichée est différente de celle lorsque vous l'avez exécutée sur ** 1. **. L'adresse IP lors de l'utilisation de Tor change à intervalles réguliers.

Recommended Posts

Grattage avec Tor en Python
Grattage au sélénium en Python
Grattage avec chromedriver en python
Grattage avec du sélénium en Python
Grattage avec Python
Grattage avec Python
Scraping avec Selenium en Python (Basic)
Grattage en Python (préparation)
Essayez de gratter avec Python.
Grattage avec Python + PhantomJS
Grattage avec du sélénium [Python]
Scraping avec Python + PyQuery
Scraping RSS avec Python
Réalisez le scraping avec le sélecteur Python et CSS en 1 minute
J'ai essayé de gratter avec Python
Web scraping avec python + JupyterLab
Grattage avec Selenium + Python Partie 1
[Python] Scraping dans AWS Lambda
Exploitez LibreOffice avec Python
Débogage avec pdb en Python
Gérer les sons en Python
Tweet avec image en Python
Combiné avec ordinal en Python
Scraping prévisions météorologiques avec python
Grattage avec Selenium + Python Partie 2
J'ai essayé de gratter avec du python
Web scraping débutant avec python
J'étais accro au grattage avec Selenium (+ Python) en 2020
[Scraping] Scraping Python
Reconnaissance des nombres dans les images avec Python
Essayez de gratter avec Python + Beautiful Soup
Tester avec des nombres aléatoires en Python
Scraping avec Node, Ruby et Python
GOTO en Python avec Sublime Text 3
Analyse CSS avec cssutils en Python
Grattage avec Python, Selenium et Chromedriver
Ouvrez UTF-8 avec BOM en Python
Gratter avec une belle soupe en 10 minutes
Faisons du scraping d'images avec Python
Utiliser Python mis en pyenv avec NeoVim
Heatmap avec dendrogramme en Python + matplotlib
Obtenez les tendances Qiita avec le scraping Python
Lire des fichiers en parallèle avec Python
Générer un mot de passe pour le manuel avec python
Utiliser OpenCV avec Python 3 dans Window
Jusqu'à traiter de python dans Atom
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Démarrez avec Python avec Blender
Obtenez des informations météorologiques avec Python et le grattage
Travailler avec des images DICOM en Python
Essayez de gratter les données COVID-19 Tokyo avec Python
Écrire de la documentation dans Sphinx avec Python Livereload
Obtenez des données supplémentaires vers LDAP avec python
Quadtree en Python --2
Obtenez des informations sur la propriété en grattant avec python
CURL en Python
Mémo de raclage Python
Grattage au sélénium
FizzBuzz en Python3