首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一周一技 | 如何快速拥有 600 + 个代理 IP?

一周一技 | 如何快速拥有 600 + 个代理 IP?

作者头像
咸鱼学Python
发布于 2019-10-31 14:25:15
发布于 2019-10-31 14:25:15
2.9K00
代码可运行
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python
运行总次数:0
代码可运行

Tor 与免费代理

说到免费的代理,很多读者可以想到是一些免费的代理网站,这些网站的代理一般是通过扫描服务器的端口获得的,且可用性和安全性不高,最大的优点就是免费的。

而 Tor 同样具有这个特性,而且可用性和匿名性更强,不仅如此 Tor 的代理属于你一人独享,不会出现代理明明可用但是却无法绕过网站限制的情况。

至于 Tor 到底能提供多少个代理 IP ,昨晚测试了2 个小时,还没有测完。

爬虫使用 Tor 代理的优势在哪?

•Tor 代理每隔几分钟会切换一次出口IP,意味着每过几分钟就可以使用一个新的IP•Tor 代理通过多层中间节点保证匿名性

Tor 的连接过程是怎么样的?

Tor 发明的初衷并不是用于爬虫,就像 Selenium 的初衷并不是用于自动化爬虫一样。

Tor 是一种“代理节点快速动态变化的加密三重代理”。

当需要通过 Tor 传递数据时,需要先连接到Directory服务获取可以用的节点。

之后从可用的节点中随机取出几个节点,组成一条通向目的节点的通路。

每隔一段时间,原有的通路会被拆除,随机新的节点组成新的通路用于通信。

如何搭建一个可用的 Tor 代理

首先需要一台能够自由浏览网络的服务器,这里使用的服务器是 Ubuntu 18.04.3

接着需要安装 Tor 代理, 注意这里安装的不是 Tor Brower。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install tor

接着需要生成密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tor --hash-password mypassword

这里会生成一串以 16 开头的 hash 串。

接着修改 Tor 的配置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vim /etc/tor/torrc

根据开头的介绍 Tor 在几分钟内会自动更换 IP 但是这个更换频率在爬虫应用中显然是不合适的,所以我们修改他的更换频率为 10 秒。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 指定端口
ControlPort 9051
# 填入密码
HashedControlPassword [密码]
# 设置更换ip的频率
MaxCircuitDirtiness 10

接下来就是关于我们爬虫脚本的编写了。

这里提供了 Python 2 和 Python 3 两个版本。

Python 2

依赖包安装
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install requesockspip install requests
测试脚本
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import requests
import requesocks
import time
url = 'https://api.ipify.org?format=json'
def getip_requests(url):
    print "(+) Sending request with plain requests..."
    r = requests.get(url)
    print "(+) IP is: " + r.text.replace("\n", "")
def getip_requesocks(url):
    print "(+) Sending request with requesocks..."
    session = requesocks.session()
    session.proxies = {'http': 'socks5://127.0.0.1:9050',
                       'https': 'socks5://127.0.0.1:9050'}
    r = session.get(url)
    print "(+) IP is: " + r.text.replace("\n", "")
def main():
    print "Running tests..."
    getip_requests(url)
    while True:
        getip_requesocks(url)
        time.sleep(10);
if __name__ == "__main__":
    main()
测试效果图

这里第一个 IP 为主机 IP,之后的 IP 为随机分配的 IP

Python3

依赖包
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip3 install pysocks
pip3 install requests
测试脚本
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
import time
import sys
import socket
import socks


def getip_requests(url):
    print("(+) Sending request with plain requests...")
    r = requests.get(url)
    print("(+) IP is: " + r.text.replace("\n", ""))


def main():
    print("Running tests...")
    url = 'https://api.ipify.org?format=json'
    socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 9050)
    socket.socket = socks.socksocket
    while True:
        getip_requests(url)
        time.sleep(10);


if __name__ == '__main__':
    main()
测试效果图

总结

上面巴拉巴拉讲了那么多,但是爬虫从业者都会有个疑问:

Tor 这么好,为什么在商业应用中极其少见?

这是因为 Tor 分派的 IP 延时并不能满足商业化爬虫的低时延,高并发的需求,所以 Tor 只能存在于业余选手的玩具库里。

不过在人人都要会点数据采集技能的今天,在工具库里常备一个有 600 + 免费 IP 的小工具也是蛮有意思的一件事情,不是吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python使用API提取代理txt格式方法详解
我们通常使用代理IP来避免在爬取网站时被封锁。代理IP可以从多个来源获取,其中一种方式是通过API获取。
华科云商小徐
2025/08/01
1220
基于Tor匿名网络的多ip爬虫
基于tor匿名网络的多ip爬虫.更换ip的方式有多种,其中tor这类型则适合ip更换次数不大,网页数据量也不大,但是又厌恶代理那天天失效的麻烦,则最简单快捷的便是使用tor在本机搭建一个出口端口,让需要更换ip的爬虫程序制定proxies指向的端口.简单而且快捷,可使用的ip池子总数1000左右,实际中有500左右可以使用,匿名性当然不用质疑了.
十四君
2019/11/28
2K0
Python requests 安装与开发
Requests 是用Python语言编写HTTP客户端库,跟urllib、urllib2类似,基于 urllib,但比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求,编写爬虫和测试服务器响应数据时经常会用到。
阳光岛主
2019/02/18
1.9K0
千万级批量采集框架,就叫他UrlSpider吧
我希望在整个理清楚数据采集这个行业的过程中,实现一个能高效的分布式的自带反爬虫的框架。。
十四君
2019/11/28
5440
​Python爬虫学习之代理IP抓取(2)
✕ 代理数据保存清洗 运行效果: 然后我的IP就给封了 代理测试 代码没问题。。。 不过短短几分钟抓了6000条代理,也算是不错了 需要下载的模块 pip install tinydb #
萌海无涯
2019/08/08
5470
​Python爬虫学习之代理IP抓取(2)
Terramaster F4-210 / F2-210 远程代码执行
#/bin/env python """ Product: Terramaster F4-210, Terramaster F2-210 Version: TOS 4.2.X (4.2.15-2107141517) Author: n0tme (thatsn0tmysite) Description: Chain from unauthenticated to root via session crafting. """ import urllib3 import requests import jso
Khan安全团队
2021/12/30
5720
代理IP全解析:从原理到自建代理池的实战指南
想象你正在咖啡馆用公共WiFi刷短视频,突然收到一条"您的账号存在风险"的警告。这很可能是黑客通过WiFi嗅探获取了你的真实IP,进而尝试入侵设备。此时,代理IP就像给设备披上了一件"隐形斗篷"——所有网络请求先经过代理服务器中转,目标网站只能看到代理服务器的IP,而你的真实位置、设备信息则被完美隐藏。
富贵软件
2025/08/11
1650
Scrapy爬取美女图片第四集 突破反爬虫(上)
本周又和大家见面了,首先说一下我最近正在做和将要做的一些事情。 技术方面的事情:本次端午假期没有休息,正在使用flask开发自己的个人博客框架,之后我的技术教程将会陆续更新flask方面的内容,尽可能的形成一套完整的flask开发教程。之后打算再开通一个微信公众号,自己使用python开发微信公众号后台,给大家提供一些生活上的服务,例如及时提醒一些商家优惠信息,跟踪快递,提醒天气等等,大家如果有什么好的想法,可以给我留言,你的点子如果被采用了,将会出现在贡献者名单中。
七夜安全博客
2018/06/26
1.3K0
你的爬虫ip又被封了?教你一招
很多人在爬虫时为了防止被封IP,所以就会去各大网站上查找免费的代理IP,由于不是每个IP地址都是有效的,如果要进去一个一个比对的话效率太低了,我也遇到了这种情况,所以就直接尝试了一下去网站爬取免费的代理IP,并且逐一的测试,最后将有效的IP进行返回。
Python研究者
2020/10/29
1.1K0
你的爬虫ip又被封了?教你一招
linux做代理服务器_linux搭建http下载服务器
首先, Tor官方提供已不再提供单独的Tor内核下载,只提供集成了Tor内核的Tor-Browser下载。Tor Browser 内置了Tor,firefox,配置工具等,使用方便,但是安装和启动需要依赖GUI图形界面,在Windows或者Mac系统上推荐安装Tor-Browser,会简便很多。如果Linux上没有安装图形界面系统,如代理服务器VPS等,是无法安装Tor-Browser的,这个情况下可以通过安装Tor内核软件的方式实现TOR代理功能。
全栈程序员站长
2022/11/11
3.8K0
20.multi_case07
# coding:utf-8 import re import ssl import csv import json import time import random import asyncio import aiohttp import requests from lxml import etree from asyncio.queues import Queue from aiosocksy import Socks5Auth from aiosocksy.connector import Pro
hankleo
2020/09/17
4630
Python 获取本机公网 IP
有很多大佬搭建的查询本机公网 IP 的服务,本文记录相关内容。 IPv4 可以访问获取公网 IPv4 IP 的站点: 直接返回ip地址 https://checkip.amazonaws.com/ https://ident.me https://ifconfig.me/ip http://icanhazip.com https://api.ipify.org/ http://ip.42.pl/raw Python 调用 import requests def get_external_ip():
为为为什么
2023/05/02
4.7K0
python使用aiohttp通过设置代理爬取基金数据
说到python爬虫,我们就会想到它那强大的库,很多新手小白在选择框架的时候都会想到使用Scrapy,但是仅仅停留在会使用的阶段。在实际爬虫过程中遇到反爬机制是再常见不过的,今天为了增加对爬虫机制的理解,我们就通过手动实现多线程的爬虫过程,同时引入IP代理池进行基本的反爬操作。
小白学大数据
2023/06/15
6550
IP代理在网络爬虫中的应用
通过用户代理我们可以将普通的爬虫程序伪装成浏览器,而IP代理的作用则是用于突破目标服务器对同一IP访问频率的限制。
生信修炼手册
2020/11/02
4830
如何利用IPIDEA代理IP优化数据采集效率?
   在全球化与信息化交织的当代社会,数据已成为驱动商业智慧与技术革新的核心引擎。网络,作为信息汇聚与交流的枢纽,不仅是人们获取知识的窗口,更是商业活动与技术创新的广阔舞台。在这个信息繁荣的时代,Python网络爬虫成为采集、分析大数据的重要工具,但实际操作中却常遇挑战。
洁洁
2024/05/07
1540
如何利用IPIDEA代理IP优化数据采集效率?
【Python爬虫实战】从入门到精通:全面解析IP代理池的原理与实战应用
在当今互联网时代,IP代理池成为了网络爬虫、隐私保护以及突破访问限制的重要工具。无论是初学者还是资深开发者,掌握代理池的搭建与使用技巧都能极大提升网络爬取的效率和稳定性。本篇文章将从基本概念出发,详细讲解IP代理池的核心功能、工作原理及应用场景,同时提供免费代理IP采集和使用的完整代码示例,助力你轻松应对各种实际需求。
易辰君
2024/11/20
6090
Python代理IP爬虫的新手使用教程
Python爬虫要经历爬虫、爬虫被限制、爬虫反限制的过程。当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程。爬虫的初级阶段,添加headers和ip代理可以解决很多问题。
用户7081581
2020/03/19
1.3K0
【详细教程】学会使用Python隧道代理
作为一名专业爬虫程序猿,我深知在进行网络数据采集时,可能会面临网络封锁、隐私泄露等问题。今天,我将与大家分享如何学会使用Python隧道代理,帮助我们自由访问受限网站,同时保护了解探索Python隧道代理!
华科云商小徐
2023/08/11
5030
【Python爬虫】Requests的使用(3)
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。 因为是第三方库,所以使用前需要cmd安装: pip install requests 安装完成后import一下,正常则说明可以开始使用了,当然还有更懒的方法通过IDE安装,比如pycharm。
PM小王
2019/07/01
5150
Python使用Tor作为代理进行网页抓取
在网络抓取的过程中,我们经常会遇见很多网站采取了防爬取技术,或者说因为自己采集网站信息的强度和采集速度太大,给对方服务器带去了太多的压力,所以你一直用同一个代理IP爬取这个网页,很有可能IP会被禁止访问网页,所以基本上做爬虫的都躲不过去IP的问题,需要很多的IP来实现自己IP地址的不停切换,达到正常抓取信息的目的。
终身幼稚园
2020/05/18
7.6K0
相关推荐
Python使用API提取代理txt格式方法详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档