自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

爬蟲新利器:揭秘 Github 火爆的開源 IP 代理池秘密!

開源 網(wǎng)絡(luò)
如果你的IP被攔截,別急,可以隨機換成另一個代理IP地址,輕松繼續(xù)完成訪問請求。今天,就讓我們一起來簡單了解一下IP代理池的安裝與使用,掌握隱藏IP的小技巧。

遇到網(wǎng)頁爬取、漏洞挖掘或滲透測試時,常常碰到請求被攔截的煩惱,導(dǎo)致任務(wù)中斷。而為了繼續(xù)發(fā)送請求數(shù)據(jù),代理池技術(shù)應(yīng)運而生。它就像一個神奇的「池子」,只需請求代理池,就能得到一個代理IP地址。如果你的IP被攔截,別急,可以隨機換成另一個代理IP地址,輕松繼續(xù)完成訪問請求。今天,就讓我們一起來簡單了解一下IP代理池的安裝與使用,掌握隱藏IP的小技巧!

最近在GitHub上發(fā)現(xiàn)了一個十分優(yōu)秀的項目,名為proxy_pool[1]的免費代理池工具。該項目完全開源,一直有著積極的開發(fā)者維護,活躍度也相當(dāng)高。

項目介紹

proxy_pool項目采用Python語言開發(fā),主要實現(xiàn)了以下功能:

  • 定時抓取免費代理網(wǎng)站,具有簡易可擴展性。
  • 使用Redis對代理進行存儲,并對代理的可用性進行排序。
  • 定時進行測試和篩選,清除不可用的代理,保留可用的代理。
  • 提供代理API,可以隨機獲取經(jīng)過測試的可用代理。

目前,該項目已經(jīng)斬獲了5.3K顆星(GitHub Star),受到廣泛關(guān)注和認可。

部署方式

您可以通過兩種方式來運行代理池。一種方式是使用Docker(推薦),另一種方式是通過常規(guī)方式運行。具體要求如下:

1.Docker

如果使用 Docker,則需要安裝如下環(huán)境:

  • Docker
  • Docker-Compose

安裝方法自行搜索即可。 官方 Docker Hub 鏡像:germey/proxypool[2]

2.常規(guī)方式

常規(guī)方式要求有 Python 環(huán)境、Redis 環(huán)境,具體要求如下:

  • Python>=3.6
  • Redis

Docker 運行

如果已經(jīng)安裝好了Docker和Docker-Compose,只需一條命令即可輕松運行。

docker-compose up

運行結(jié)果類似如下:

redis        | 1:M 19 Feb 2020 17:09:43.940 * DB loaded from disk: 0.000 seconds
redis        | 1:M 19 Feb 2020 17:09:43.940 * Ready to accept connections
proxypool    | 2020-02-19 17:09:44,200 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
proxypool    | 2020-02-19 17:09:44,203 INFO supervisord started with pid 1
proxypool    | 2020-02-19 17:09:45,209 INFO spawned: 'getter' with pid 10
proxypool    | 2020-02-19 17:09:45,212 INFO spawned: 'server' with pid 11
proxypool    | 2020-02-19 17:09:45,216 INFO spawned: 'tester' with pid 12
proxypool    | 2020-02-19 17:09:46,596 INFO success: getter entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
proxypool    | 2020-02-19 17:09:46,596 INFO success: server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
proxypool    | 2020-02-19 17:09:46,596 INFO success: tester entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

可以看到 Redis、Getter、Server、Tester 都已經(jīng)啟動成功。 這時候訪問http://localhost:5555/random 即可獲取一個隨機可用代理。

當(dāng)然你也可以選擇自己 Build,直接運行如下命令即可:

docker-compose -f build.yaml up

使用

成功運行之后可以通過http://localhost:5555/random 獲取一個隨機可用代理。

可以用程序?qū)訉崿F(xiàn),下面的示例展示了獲取代理并爬取網(wǎng)頁的過程:

import requests

proxypool_url = 'http://127.0.0.1:5555/random'
target_url = 'http://httpbin.org/get'

def get_random_proxy():
    """
    get random proxy from proxypool
    :return: proxy
    """
    return requests.get(proxypool_url).text.strip()

def crawl(url, proxy):
    """
    use proxy to crawl page
    :param url: page url
    :param proxy: proxy, such as 8.8.8.8:8888
    :return: html
    """
    proxies = {'http': 'http://' + proxy}
    return requests.get(url, proxies=proxies).text


def main():
    """
    main method, entry point
    :return: none
    """
    proxy = get_random_proxy()
    print('get random proxy', proxy)
    html = crawl(target_url, proxy)
    print(html)

if __name__ == '__main__':
    main()

運行結(jié)果如下:

get random proxy 116.196.115.209:8080
{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.22.0",
    "X-Amzn-Trace-Id": "Root=1-5e4d7140-662d9053c0a2e513c7278364"
  },
  "origin": "116.196.115.209",
  "url": "https://httpbin.org/get"
}

可以看到成功獲取了代理,并請求 httpbin.org 驗證了代理的可用性。

寫到最后

在網(wǎng)絡(luò)數(shù)據(jù)獲取和安全測試中,代理池是一個非常有用的工具,能夠幫助用戶有效地管理和利用代理資源,提高工作效率。通過本文的介紹,希望您對代理池的原理和使用有了更深入的了解。無論是對于開發(fā)者還是安全工程師來說,掌握代理池的使用技巧都將成為您工作中的利器。

Reference:

  • [1]proxy_pool:https://github.com/Python3WebSpider/ProxyPool
  • [2]germey/proxypool:https://hub.docker.com/r/germey/proxypool
責(zé)任編輯:趙寧寧 來源: 攻城獅成長日記
相關(guān)推薦

2019-06-18 08:27:37

Squid代理服務(wù)器IP代理池

2015-01-22 16:34:54

Github國產(chǎn)開源項目

2009-11-06 12:29:23

2011-03-02 16:04:16

2016-06-30 16:52:23

開源

2019-06-14 10:30:18

程序員項目開源

2019-06-12 10:18:03

GitHub代碼開發(fā)者

2018-01-30 10:34:24

爬蟲HTTP過程

2020-02-27 16:17:31

代碼規(guī)范codegithub

2021-03-29 12:51:04

GitHub秘密掃描計劃PyPl

2013-07-02 09:58:04

2021-09-15 10:43:08

Python程序開源工具

2017-05-16 09:56:44

2012-02-22 22:21:15

nagios開源

2015-11-24 16:59:13

2017-09-08 15:04:10

jQuery爬蟲PyQuery

2022-06-27 09:23:14

爬蟲frida rpc加密

2013-08-09 10:41:58

2025-01-14 14:54:57

2011-07-29 12:25:36

點贊
收藏

51CTO技術(shù)棧公眾號