文档章节

python 爬虫 抓取shadowsocks vpn 地址

zhailibao
 zhailibao
发布于 2015/11/10 15:24
字数 198
阅读 638
收藏 3
#encoding=utf8
__author__ = 'zhailb'
'''
auto get vpn host from http://www.ishadowsocks.com/ ,write json config file
20160115 密码为空情况: (?P<password>.*?)  '''
import json
import urllib
import re
gui_config = "E:\\tools\Shadowsocks-win-2.3.1\gui-config.json"
def write_config(cfg_file, vpns):
    fp = file(cfg_file)
    cfg = json.load(fp)
    fp.close()
    del cfg['configs'][:]
    for vpn in vpns:
        vpn_dict={}
        vpn_dict['server']=vpn['server']
        vpn_dict['server_port']=vpn['server_port']
        vpn_dict['password']=vpn['password']
        vpn_dict['method']=vpn['method']
        vpn_dict['remarks']=u''
        cfg['configs'].append(vpn_dict)
    with open(cfg_file,'w') as f:
        json.dump(cfg,f)

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getvpn(html):
    vpns = []
    reg = r"<h4>.+?服务器地址:(?P<server>.+?)</h4>.+?<h4>端口:(?P<server_port>.+?)</h4>.+?<h4>.+?密码:(?P<password>.*?)</h4>.+?<h4>加密方式:(?P<method>.+?)</h4>.+?<h4>状态:(?P<status>.+?)</h4>"
    vpn_arr =  [m.groupdict() for m in re.finditer(reg, html,re.S)]
    for vpn in vpn_arr:
        if vpn.has_key("status"):
            if re.search('green',vpn['status']):
               vpns.append(vpn)
    return vpns

if __name__ == '__main__':
    html = getHtml("http://www.ishadowsocks.com/")
    vpns = getvpn(html)
    write_config(gui_config, vpns)

© 著作权归作者所有

共有 人打赏支持
zhailibao
粉丝 3
博文 39
码字总数 11831
作品 0
东城
系统管理员
python模块介绍-shadowsocks:穿越防火墙的快速隧道代理(实现自由冲浪)

Shadowsocks 是一个安全的socks5代理,用于保护网络流量,是一个开源项目。 由于Shadowsocks使用socks5协议和可自定义密码的工业级算法加密,使得流量在网络传输过程中不易被他人读取。但是使...

磁针石
2015/06/09
0
0
烂泥:aws搭建shadowsocks服务器

本文由秀依林枫提供友情赞助,首发于烂泥行天下 前段时间一直在忙openvpn的事情,现在手头有台aws服务器,打算利用起来。 如何利用呢?利用这台服务器进行科学上网,实际需求如下。 一、实际...

烂泥行天下
2015/08/08
0
0
ubuntu14 下安装 shadowsocks

shadowsocks 的项目主页: https://github.com/clowwindy/shadowsocks 首先你要有一台墙外的 VPS,我的是 Ubuntu 系统。shadowsocks 要求 Python 2.6 最好 2.7。 python –version Python 2.......

无头骑士
2015/01/12
0
0
aws搭建shadowsocks服务器

前段时间一直在忙open***的事情,现在手头有台aws服务器,打算利用起来。 如何利用呢?利用这台服务器进行科学上网,实际需求如下。 一、实际需求 在国内搜索技术文章,如果使用baidu的话,你...

wenhuifu
06/27
0
0
Centos下Shadowsocks多用户后端Manyuser后台运行

Shadowsocks开机自动启动并后台运行 vi /etc/rc.local 用vi编辑器添加以下内容(先按键盘Ins键,切换到编辑模式): cd /root/shadowsocks/shadowsocks screen -dmS Shadowsocks python serv...

刘语彤
2015/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RobotFramework之Process

Process Library version: 3.0.4 Library scope: global Named arguments: supported Introduction Robot Framework test library for running processes. This library utilizes Python's s......

海盐宝宝
2分钟前
0
0
easyui的textbox赋值问题,不能用$('#text').val('text');赋值

下面来看看easyui的各种验证框赋值的方式: <input name="text" id="text" class="easyui-numberbox" > <input name="text" id="text" class="easyui-textbox" > <input name="text" id="tex......

无小农
5分钟前
0
0
弹性工作制的魔咒

简评:你找到了一份完美的工作 —— 可以提前离开公司,还可以在晚上从家里回复邮件。既然如此,你为什么还会有那么强的负罪感呢? 或许是弹性工作制魔咒在作祟。 很多享受弹性工作制的人会始...

极光推送
12分钟前
0
0
KAFKA介绍(分布式架构)

Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: Kafka将消息以...

明理萝
18分钟前
0
1
os::NodeHandle::subscribe回调函数绑定对象

void Foo::callback(const std_msgs::Empty::ConstPtr& message){}Foo foo_object;ros::Subscriber sub = handle.subscribe("my_topic", 1, &Foo::callback, &foo_object); 参考: ht......

itfanr
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部