Tor+python

前言

互联网技术的不断发展,网页数据抓取越来越不简单,往往都会遇到ip地址被封的情况,一般情况都会使用IP代理池进行伪装ip地址,但如今那些免费的IP代理池早已被各大厂商的网站运维拉黑。
但是那些数据很想要,又不想花钱,没事,Tor代理为我们完成这一事。关于Tor代理实现原理,网上自行搜索!!
本文纯属个人经验分享,随便转载,不喜勿喷,谢谢。

由于Mac、Linux使用Tor代理特别简单,使用软件安装器一装即可,因此本文使用的Windows 10 环境。

0001-Tor下载

Tor软件可以去官网下载Tor-browser,也可以下载Console界面的软件,只需配置下配置文件即可。
Console界面的可以下载源码自行DIY,编译,安装即可。也可以下载Windows Expert Bundle,里面版本是Tor 0.4.2.7
下载地址

0010-Tor 配置

想要连接到Tor服务,需要走个前置代理或者网桥,如果自己有一个science Network 的代理,直接在配置文件中添加。
如果走网桥的话,需要自己发邮件获取,地址为: bridges@torproject.org

使用Tor 0.4.2.7,需要在自己电脑用户文件夹中创建配置文件,具体路径为:{$用户文件}\AppData\Roaming\tor\torrc


CookieAuthentication 1
#Tor 程序控制端口,通过控制可变更ip
ControlPort 9051 

#data 目录,解压文件目录
DataDirectory {your directory}\tor\Data\Tor
GeoIPFile {your directory}\tor\Data\Tor\geoip
GeoIPv6File {your directory}\tor\Data\Tor\geoip6

#HTTP前置代理,使用http和socks都行
HTTPSProxy 127.0.0.1:8888 

#网桥 可发送邮件获取,使用网桥,将其取消注释即可
#Bridge obfs4 86.12.244.17:80 9E39713B73FE0F21E71DEA359A9810004E182D6E cert=U5pg5uiUBUD4d5LWp+6I++WHf1jtEfg6/lJHOzy3crrnQHRhU0AAxqJMq2buJ9Lj623FVQ iat-mode=0
#Bridge obfs4 5.196.74.8:7778 712D2EEDEB02A07639D44C1B00C0013FBA0F2176 cert=nH47UcTTIpZfRLoYpToOJZe1dPaxHuvdlegB7ujbia+xHxiuIxiummTj6gt1O7auR1s7eA iat-mode=0
#Bridge obfs4 89.72.10.147:54554 88B74AC941A8E5084D7A777B5F7666C65EA568F2 cert=RPQyxGIRnUasPwlx3QkqAbOQny8XApwZWaG8Ci6KjOpOONvbHt/WXjiOBKMGtXQ8e6weHA iat-mode=0
#UseBridges 1

0011-Tor运行

配置完后,运行tor.exe即可,会提示连接情况,从0%一直到100%,100%即连接Tor服务成功。Tor会监听9050端口,通过该端口进行代理。

0100-Tor+Python

Tor运行成功后,可使用Socks和Http为python程序代理

SOCKS

# coding=utf-8

import socket
import socks
import requests

socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket

print(requests.get('https://api.ipify.org/?format=json').text)

HTTP

因为有的网站socks代理不能进行访问,因此将socks转换成http

import requests
proxies = {
                'http': 'socks5://127.0.0.1:9050',
                'https': 'socks5://127.0.0.1:9050'
            }
print(requests.get('https://api.ipify.org/?format=json', proxies=proxies).text)

Tor控制

通过9051端口可进行Tor控制变更ip

from stem import Signal
from stem.control import Controller

with Controller.from_port(port = 9051) as controller:
    controller.authenticate()
    controller.signal(Signal.NEWNYM)

end

使用Tor代理python爬虫的原理到此ending,至于爬虫抓取代码自行研究了O(∩_∩)O哈哈~

如果有其他好的方法,欢迎给我留言。。。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用代理服务器来更改Python的IP地址。您可以使用Python的requests模块来设置代理服务器。以下是一个示例代码: ```python import requests proxies = { 'http': 'http://<代理服务器IP地址>:<代理服务器端口号>', 'https': 'http://<代理服务器IP地址>:<代理服务器端口号>', } response = requests.get('http://www.example.com', proxies=proxies) ``` 请注意,您需要将`<代理服务器IP地址>`和`<代理服务器端口号>`替换为您实际使用的代理服务器的IP地址和端口号。 ### 回答2: 在Python中,我们可以使用各种方法来更改IP地址。这里有两种常见的方法: 1. 使用代理服务器:代理服务器可以帮助我们在互联网上匿名访问,从而更改IP地址。我们可以使用Python中的第三方库,例如requests或urllib,与代理服务器进行通信。首先,我们需要获取可用的代理服务器地址和端口号,这可以通过代理服务器提供商或公共代理列表网站获取。然后,我们可以在请求中设置代理服务器,以便使用新的IP地址发送请求。例如,使用requests库可以这样设置代理服务器: ```python import requests proxy = { 'http': 'http://proxy-server-ip:port', 'https': 'https://proxy-server-ip:port' } response = requests.get(url, proxies=proxy) ``` 这样,我们就可以通过代理服务器发送请求,从而更改IP地址。 2. 使用Tor网络:Tor网络是一种匿名网络,它可以通过在全球范围内分布的隧道路由来隐藏用户的真实IP地址。在Python中,我们可以使用第三方库如stem来与Tor网络进行通信和控制。首先,我们需要安装并配置Tor网络,然后使用stem库连接到Tor控制端口,并通过该端口发送命令来更改IP地址。例如,通过发送NEWNYM命令可以请求一个新的IP地址: ```python import stem with stem.control.Controller.from_port(port=9051) as controller: controller.authenticate() controller.signal(stem.Signal.NEWNYM) ``` 这样,我们就可以使用Tor网络来更改IP地址。 需要注意的是,使用代理服务器或Tor网络来更改IP地址可能有一些限制和隐私问题,因此使用时需要谨慎,并遵守相关法律和规定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值