Bob Ebert
Bob Ebert

Reputation: 1401

Python3 - Requests with Sock5 proxy

Is there a way to use sock5 proxy to use TOR with requests? I know that requests only use http proxy...

import requests
r = requests.get('http://www.google.com',proxies= my_proxy)

Upvotes: 11

Views: 20161

Answers (2)

michael
michael

Reputation: 150

I think at the moment requests works with socks5 out of the box.

import requests

url = 'https://example.com'
proxies = {'http': 'socks5://127.0.0.1:9150',
           'https': 'socks5://127.0.0.1:9150'}
r = requests.get(url, proxies=proxies)

Upvotes: 2

Eugene Alkhouski
Eugene Alkhouski

Reputation: 550

You can use socks, socket modules

import socks
import socket
from urllib import request

socks.set_default_proxy(socks.SOCKS5, "localhost", 9050)
socket.socket = socks.socksocket
r = request.urlopen('http://icanhazip.com')
print(r.read()) # check ips

The socks package can be installed from multiple packages which are forks of socksipy. One particular one that also works on Python3 is PySocks. You can install it, for example, with pip:

pip3 install PySocks

Upvotes: 22

Related Questions