Giter Site home page Giter Site logo

rain-kl / glider_guid41asd4asd Goto Github PK

View Code? Open in Web Editor NEW
100.0 1.0 14.0 2.99 MB

使用Glider将节点转换成爬虫代理池,每秒切换IP,本项目包含使用教程,并提供将clash订阅转换为glider所支持的格式

Python 100.00%
clash glider proxy spider node-pool proxy-pool

glider_guid41asd4asd's Introduction

通过【Glider】将机场节点作为爬虫代理池

Convert nodes into a spider proxy pool that switches IP every second

介绍

当我们在使用爬虫时对一个网站进行多次爬取爬虫可能会被封禁,一般是针对IP进行封锁,所以如果我们切换IP就可以正常爬取了,于是我们就会用到代理池,目前代理池一个是免费的,但质量普遍较差,还有一个是付费的,费用普遍较高,超过我们的需求

最经济实惠的方法就是用机场的节点,配合Glider将其做为代理池使用

本项目主要介绍glider的作为代理池的使用,并没有参与glider项目的开发,如遇到glider的问题请到glider开发者下提issue 本文仅探讨分享技术供大家学习,不提供节点获取途径。

安装

下载Glider,github地址:Release v0.16.3 · nadoo/glider (github.com)选择合适的版本

以下就是Glider的目录结构

Snipaste_2023-06-11_09-54-04

创建配置文件

运行glider需要创建配置文件,配置文件模板在/config/examples文件内

这里我的配置名为glider.config,放置在glider.exe的同级目录下

以下是我的配置信息

# Verbose mode, print logs
verbose=True  #允许打印日志
listen=:8443  #监听端口

strategy=rr   #节点选择策略

check=http://www.msftconnecttest.com/connecttest.txt#expect=200   #延迟测试地址
checkinterval=60  #测试时间间隔

#节点信息
forward=...
forward=...
forward=...

节点选择策略

轮询模式:rr

Round Robin mode: rr

轮询模式是一种负载均衡算法,它会依次将请求分配到各个服务器上,直至所有服务器被均衡使用。该算法简单易实现,适用于服务器性能差异不大的情况。

简单来说就是IP换的特别快

高可用模式:ha

High Availability mode: ha

高可用模式指的是在服务器宕机或出现其他故障时,系统可以自动切换到备用服务器上,保证服务的持续可用性。这种模式常用于对服务可用性要求较高的场景,如金融、医疗等领域。

简单来说就是节点挂了才换

延迟为基础的高可用模式:lha

Latency based High Availability mode: lha

延迟为基础的高可用模式是一种结合了高可用与负载均衡**的算法,它会根据服务器的延迟情况来判断是否需要切换到备用服务器上。当主服务器的延迟明显高于备用服务器时,系统会自动切换到备用服务器上以减少用户感知的延迟。

简单来说就是始终选择最低延迟的节点

目标哈希模式:dh

Destination Hashing mode: dh

目标哈希模式是一种负载均衡算法,它会根据请求的某些关键特征(如来源 IP、URL等)计算哈希值,并将请求分配到相应的服务器上。该算法可以保证同一请求的多次访问会被路由到同一台服务器上,适用于需要对用户进行会话管理的场景。

打个比方来说就是访问百度的所有流量都交给一个节点,访问微软的所有流量交给另一个节点

节点配置信息

  • 注意:以下内容随时可能被和谐

以下是glider对各协议的支持

Snipaste_2023-06-11_10-17-31

如果你用的是“Clash for Windows”,可以打开配置目录C:\Users\你用户名\.config\clash\profiles

Snipaste_2023-06-11_10-15-18

用记事本打开yml,然后复制到我提供的转换器内,后续教程也放在那里了

运行Glider

在同级目录下打开cmd输入glider -config glider.conf

或者创建run.cmd文件,在里面输入glider -config glider.conf来执行程序

Snipaste_2023-06-11_10-50-35

这样glider就运行起来了

使用Glider

爬虫

在request加入proxy参数,指定socks5协议端口指向之前配置文件里设置的端口

$ pip install requests[socks]
proxies = {
    'http': 'socks5://127.0.0.1:8443',
    'https': 'socks5://127.0.0.1:8443'
}

上网

在“Clash for Windows”中新增配置信息,协议选择socks5,地址本地,端口为glider的端口,具体配置规范参考官方文档这里不做过多赘述,这里推荐使用lha策略,始终选择延迟最低的节点

以下是使用rr策略的ip变换情况

Snipaste_2023-06-11_11-00-37

节点转换程序【parse.py】的使用

建议使用pycharm或vscode运行,需要安装一些第三方库

  1. 将clash内配置文件全部复制到config.yml内
  2. 运行订阅转换.py

以下是节点的规范

trojan://密码@主机地址:端口?cert=PATH&key=PATH 没有配置过trojan协议的节点,故不做讨论

vmess://加密方式:uuid@主机地址:端口?alterID= { name: '香港', type: vmess, server: 'xxx.cn', port: 123, uuid: ac005860, alterId: 0, cipher: auto, udp: true } 根据实测,加密方式填写auto程序无法执行,所以我统一按照none处理

ss://加密方式:密码@主机地址:端口 {'name': '新加坡', 'type': 'ss', 'server': 'xxx.cn', 'port': 123, 'cipher': 'chacha20-ietf-poly1305', 'password': 'password', 'udp': True}

节点转换程序写的比较简单,只能转换以上三种节点,如果有其他节点格式,可以自行修改代码,欢迎各位大佬提PR

伪分布式爬虫参考模板

改模板位于distributed_crawler文件夹内

使用前需要将glider可执行程序放置在distributed_crawler/core文件夹下

glider.conf为基础模板文件,内部仅添加forward节点,策略和配置请前往代码修改

glider_guid41asd4asd's People

Contributors

rain-kl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

glider_guid41asd4asd's Issues

我魔改了下代码,增加了对base64链接的支持以及订阅链接的功能

感谢你的代码,让我了解 glider 这个好用的工具,但是我有多个机场,这些机场一般一天会更换节点,频繁去解码拷贝节点到配置文件也不太现实,我就自己改了下 glider 代码(基于目前最新版 0.16.3 ),首先增加了解码 base64 的功能,后面增加了订阅链接的功能,本来还想定期检测订阅链接,自动更新节点,但是涉及要替换里面已经存在的节点,我觉得处理起来有点麻烦,暂时先这样了。所以就是启动的时候会从订阅去获取节点,然后放在代理组内,代理组的代理仍然遵循配置文件的时间,定期检测。

https://github.com/meoww-bot/glider

配置文件增加了一项

forwardprovider=https://www.xxx.com/api/v1/client/subscribe?token=xxxxxx

可以配置多行

forwardprovider=https://www.xxx.com/api/v1/client/subscribe?token=xxxxxx
forwardprovider=https://www.xxx2.com/api/v1/client/subscribe?token=xxxxxx
forwardprovider=https://www.xxx3.com/api/v1/client/subscribe?token=xxxxxx

注意订阅链接内容是 base64 的节点信息,非 clash 格式,不带规则组。

我这边运行是可以的,你们可以试试,但是因为破坏了原有的其他功能,所以没法去提pr了。而且,引入了 net/http 这个包,二进制程序文件大小较原有的增加了4MB,一共 12M 左右,其实还是可以接受的。

运行无反应

将clash内配置文件全部复制到config.yml内
运行订阅转换.py
我安装vscode,安装了py插件和本机安装了python。加载了yml和转换。py文件,在vscode里面运行转换文件怎么没反应呢?报错:[{
"resource": "/P:/软路由/glider转换文件夹/glider_guid41asd4asd-master/订阅转换.py",
"message": "无法从源解析导入“yaml”",,老板你给的那个粘贴的yaml文件不能加载进去运行哇。应该怎么处理呢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.