移动端 | 加入收藏 | 设为首页 | 最新ss | 赞助本站 | RSS
 

freefq.comfree——免费、自由fq——翻墙

困在墙内,请发邮件到freefqcom#gmail.com获得最新免费翻墙方法!
您当前的位置:首页 > 网络翻墙技巧

自动抓取免费SS账户密码

时间:2017-07-28  来源:flyou  作者:房泽龙 条评论

本文介绍:自动采集免费 SS 服务器的密码,使用 Shadowsocks 翻墙。 WoC免费翻墙网

原题:关于科学上网两三事-续 前言WoC免费翻墙网

在上篇文章中我们介绍了市面上几种番羽土啬的方式,以及如何搭建一套属于自己SS服务端,但是考虑到多种原因,很多小伙伴应该也不会那么做。WoC免费翻墙网

为啥咧?你们都去打农药了吗?你们都去约会了吗?说的跟你们真的有女朋友似得。WoC免费翻墙网

今天我们不聊这个,我们今天就是要帮懒人做件事,话说懒人番羽土啬要干嘛?WoC免费翻墙网
WoC免费翻墙网
那我猜肯定是倒数第三种。WoC免费翻墙网

第三种是什么WoC免费翻墙网

有什么问题吗?

上篇文章问题提到如何搭建自己的ss服务器,很多小伙伴提到自己搭建太麻烦,费用也是个问题WoC免费翻墙网

WoC免费翻墙网
WoC免费翻墙网

但是,你还记得上一篇文章的最后,提到一个免费的代理账号的网站,但是周围很多小伙伴还是说使用起来太不方便了。WoC免费翻墙网

纳尼?WoC免费翻墙网

  1. 网站上有多个账号数据,有很多个不能使用,一次次填写账号密码数据太繁琐。
  2. 代理账号密码数据每6个小时更新一次,更新后原账号密码数据不可用,难道我要每6个小时再重复上面的动作?

仔细想了想,确实是这个样子,每次都要做重复的操作确实太不软件工程了,那么,那么就让我们洗洗睡吧。WoC免费翻墙网

开什么玩笑,问题肯定要解决啊。WoC免费翻墙网

唠唠这些问题

上一节我们提到要实现这么一个工具(软件)来获取网站上的账号和密码数据到保存到本地并配置给代理软件。WoC免费翻墙网

1.咦,账号的获取

首先我们说说怎么获取这些账号和密码数据,肯定不能再一次次手动打开这个网站去抄这些数据吧,爬虫在这个时候就显得非常好用了。WoC免费翻墙网

那么,该用什么来实现这个爬虫呢?WoC免费翻墙网

这里我采用了Jsoup来显示这个爬虫,主要是因为python的定时调度不好用(下面具体说明)WoC免费翻墙网

使用jsoup爬去这个页面的数据和python一样,写起来很简单WoC免费翻墙网

 public List<SSBean> getSSAccount() {      Document document = null;     try {         document = Jsoup.connect("http://ss.ishadowx.com/").get();          Element firstElement = document.getElementsByClass("portfolio-items").first();         Elements ssElements = firstElement.getElementsByClass("hover-text");         for (Element element : ssElements) {             SSBean ssBean = new SSBean();             String address = element.getElementsByTag("h4").first().getElementsByTag("span").text();             String password = element.getElementsByTag("h4").get(2).getElementsByTag("span").first().text();             String portString = element.getElementsByTag("h4").get(1).text();             String port = portString.split(":")[1];             String methodString = element.getElementsByTag("h4").get(3).text();             String method = methodString.split(":")[1];             ssBean.setAddress(address);             ssBean.setPort(port);             ssBean.setPassword(password);             ssBean.setMethod(method);             if (ssBean.getPassword() == null || ssBean.getPassword().isEmpty()) {                 continue;             }             ssBeanList.add(ssBean);         }     } catch (IOException e) {         e.printStackTrace();     }     return ssBeanList; } 

运行程序,我们便得到了这个List的账号数据WoC免费翻墙网
WoC免费翻墙网
是的,我们通过很简单的代码便获取到了这些账号数据,但是这些数据我们该怎么用呢?直接生成文件保存本地?每次使用都需要从网站去爬去这些数据?这些数据如何配置到SS?WoC免费翻墙网

停,停……WoC免费翻墙网

我已经不敢往下继续想了。WoC免费翻墙网

 WoC免费翻墙网

WoC免费翻墙网
WoC免费翻墙网

 WoC免费翻墙网

2.啊,我的思路呢

别闹,问题还是需要解决的。刚才我们使用很简单的代码获取到了网站上的账号数据,但是……WoC免费翻墙网

WoC免费翻墙网

需要我给翻译吗?WoC免费翻墙网

WoC免费翻墙网

相信我,这不是网站自带的功能,真的是我翻译的,才怪。。。WoC免费翻墙网

也就是说,网站上的数据每6个小时更新一次,我们一次性抓取保存时没有用的,因为你下次用的时候他说不定已经过期了,你肯定回想那我就不存了啊,我有空了就去启动我的软件,或者我就在上面的时间段后去运行这段代码,好吧你真的不懒,是很闲啊。WoC免费翻墙网

  • 第一,我们的爬取代码肯定不能放在客户端,网站页面有访问限制,多次访问会被封ip(又是防抓取套路……)
  • 第二,抓取代码需要定期执行,去自动抓取
  • 第三,程序放在服务端将爬取的数据放在数据库,需要提供接口支持

在上面提到我们没有使用python,因为python定时调度不好管理,而且接口部署没有java的spring boot这么简单。WoC免费翻墙网

下面就讲讲服务端的实现。WoC免费翻墙网

3.呀,服务端

既然服务端只是简单的接口实现和数据库存取操作,那么Spring boot肯定是首选啊,Spring boot在做微服务方面还是很方便的。WoC免费翻墙网

页面爬去入库WoC免费翻墙网

在model层实现对页面的爬去,在Controller层调用爬去方法定期执行,并提数据库查询接口。WoC免费翻墙网

@Component public class ScheduledTasks { @Autowired private SSRespository ssRespository; private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);  private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); SSAccountModel ssAccountModel;  @Scheduled(cron = "0 0/15 0,6,12,18 * * *" ) public void reportCurrentTime() {     log.info("The time is now {}", dateFormat.format(new Date()));     ssAccountModel = new SSAccountModelImpl();     List<SSBean> ssAccount = ssAccountModel.getSSAccount();     if (ssAccount == null || ssAccount.size() == 0) {         log.info("爬取得信息:{}", "爬取失败");     } else {         log.info("爬取得信息:{}", ssAccount.toString());         ssRespository.deleteAll();         ssRespository.save(ssAccount);     }   }   } 

使用@Scheduled(cron = “0 0/15 0,6,12,18 *” )注解实现程序在每天的0:15,6:15,12:15,18:15定期执行。WoC免费翻墙网

ssRespository.deleteAll(); ssRespository.save(ssAccount); 

如上代码,在插入数据库前清空数据库并插入,这样就实现了定期对网站页面的爬去和入库操作WoC免费翻墙网

接口映射WoC免费翻墙网

有了数据给客户端提供接口就显得很简单了,直接从数据库查询数据返回给调用者即可,当然这里没有对调用者做限制,主要演示实现。WoC免费翻墙网

@RestController public class SSCountController { @Autowired private SSRespository ssRespository; @RequestMapping("/getAccount") public Iterable<SSBean> getSSAccount() {     Iterable<SSBean> all = ssRespository.findAll();     return all;     } } 

运行程序,在浏览器访问 http://localhost:8080/getAccount 即可。WoC免费翻墙网

WoC免费翻墙网

点我下载源码WoC免费翻墙网

4.嗨,客户端

由于考虑到在客户端(window)运行,考虑到没有安装jdk环境的,所以不能使用java打jar包实现,由于客户端的业务很简单,主要就是调用接口生成配置文件,打开SS客户端完成配置文件的加载。WoC免费翻墙网

考虑到生成exe文件,这里客户端就直接使用python来实现了WoC免费翻墙网

#!/usr/bin/python # -*- coding: UTF-8 -*- # -------------------------- # Author fzl # Date 2017/7/20 15:13 # EMAIL fangjalylong@qq.com # Desc  # -------------------------- import json import requests import sys  from ExeUtil import ExeUtil  type = sys.getfilesystemencoding()  print( "***************************************************************") print( "*                                                             *").decode('utf-8').encode(type) print( "*******************欢迎使用免费代理更新程序********************").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "*******************正在更新配置文件,请稍后********************").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "***************************************************************")  url = 'your url' data = requests.get(url) beans=json.loads(data.text) file=open("gui-config.json","w+") file.write('''{   "configs": ['''+'\n') for index in range(len(beans)): file.writelines('{') file.write('''"server": "'''+beans[index]['address'].strip()+'''"'''+',\n') file.write('''"server_port": "'''+beans[index]['port'].strip()+'''"'''+',\n') file.write('''"password": "'''+beans[index]['password'].strip()+'''"'''+',\n') file.write('''"method": "'''+beans[index]['method'].strip()+'''"'''+',\n') file.write('''"remarks": "'''+beans[index]['address'].strip()+'''"'''+',\n') file.write('''"timeout": "'''+'5'+'''"'''+'\n') if index==len(beans)-1:     file.writelines('}') else:     file.writelines('},')  file.write(''' ],   "strategy": null,   "index": 0,   "global": true,   "enabled": false,   "shareOverLan": true,   "isDefault": false,   "localPort": 1080,   "pacUrl": null,   "useOnlinePac": false,   "secureLocalPac": true,   "availabilityStatistics": false,   "autoCheckUpdate": true,   "checkPreRelease": false,   "isVerboseLogging": true,   "logViewer": { "topMost": false, "wrapText": true, "toolbarShown": false, "Font": "Consolas, 8pt", "BackgroundColor": "Black", "TextColor": "White"   },   "proxy": {     "useProxy": false,        "proxyType": 0,     "proxyServer": "",     "proxyPort": 0,     "proxyTimeout": 3   },   "hotkey": { "SwitchSystemProxy": "", "SwitchSystemProxyMode": "", "SwitchAllowLan": "", "ShowLogs": "", "ServerMoveUp": "", "ServerMoveDown": ""   } }''') file.close() print( "*                                                             *").decode('utf-8').encode(type) print( "*    SS默认选中第一个代理账号,如不可用请尝试切换其他账号     *").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "*             配置文件已经更新,Shadowsocks已经启动            *").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "*                                               by:flyou     *").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "*                                    http://www.flyou.ren     *").decode('utf-8').encode(type) print( "*                                                             *").decode('utf-8').encode(type) print( "***************************************************************") exeUtil=ExeUtil('.','Shadowsocks.exe') exeUtil.openExe() 

打开exe工具类WoC免费翻墙网

class ExeUtil: def __init__(self, filePath, fileName):     self.filePath = filePath     self.fileName = fileName  def openExe(self):     try :         handle = win32process.CreateProcess(os.path.join(self.filePath, self.fileName),             '', None, None, 0,             win32process.CREATE_NO_WINDOW,             None ,             self.filePath,             win32process.STARTUPINFO())         running = True     except Exception, e:          print "Create Error!"         handle = None         running = False      while running :      rc = win32event.WaitForSingleObject(handle[0], 1000)      if rc == win32event.WAIT_OBJECT_0:             running = False #end while             print "GoodBye" 

点我下载源码WoC免费翻墙网

5.哈 ,试一试效果

执行代码,即可完成配置文件的生成和装载WoC免费翻墙网

WoC免费翻墙网

此时,Shadowsocks应用就会已经启动(目录下需要有Shadowsocks)并成功加载相应的账号配置,如下图WoC免费翻墙网

WoC免费翻墙网

浏览器如何配置代理请参照上一篇文章WoC免费翻墙网

关于科学上网两三事WoC免费翻墙网

注意,抓取的账号不是每一个都可以用,但是至少有3、4个是很快的,右键点击ss尝试切换不同的账号吧。WoC免费翻墙网
WoC免费翻墙网

NOW,DO WHAT YOU WANT TO DOWoC免费翻墙网
WoC免费翻墙网

WoC免费翻墙网

最后还要唠叨几句

说了这么多,你的安装文件呢?哎呀,只顾着学习(装逼)忘记留种了%^……^%WoC免费翻墙网

WoC免费翻墙网

点我下载-百度云WoC免费翻墙网

密码: 7rbjWoC免费翻墙网

关于软件的使用说明WoC免费翻墙网

1.解压FreeShadowsocks.rar到任意目录WoC免费翻墙网

2.点击FreeShadowsocks.exe邮件发送到桌面快捷方式WoC免费翻墙网

3.点击桌面快捷方式即可打开程序。WoC免费翻墙网

备注:WoC免费翻墙网

本软件只是定时获取网络上可用的SS账号数据并下发配置文件到本地WoC免费翻墙网

如果发现账号不可用请切换到其他代理账号重试或者退出SS重新打开本软件WoC免费翻墙网

原则上账号数据会每6个小时更新一次WoC免费翻墙网

服务器会在每天的0:15,6:15,12:15和18:15去重新生成相应账号WoC免费翻墙网

请务必在此时段重新打开本软件已获取最新的账号数据,以保证正常使用代理WoC免费翻墙网

更新,连接超时时间5->15,用户可以在ss的设置界面来设置不同账号的超时时间。WoC免费翻墙网
WoC免费翻墙网

来自flyouWoC免费翻墙网

来顶一下
返回首页
返回首页
欢迎评论:免登录,输入验证码即可匿名评论 共有条评论
用户名: 密码:
验证码: 匿名发表

推荐资讯

Octohide VPN:快如闪电的免费VPN
Octohide VPN:快如闪
原子网络加速器 - 免费高速VPN 一键链接 方便快捷
原子网络加速器 - 免费
foxovpn绿狐VPN——即连即用、快速、安全
foxovpn绿狐VPN——即
Dubai VPN - Free, Fast & Secure VPN下载
Dubai VPN - Free, Fa
相关文章
栏目更新
栏目热门
墙外新闻
读者文摘

你可以访问真正的互联网了。You can access the real Internet.

管理员精中特别提醒:本网站域名、主机和管理员都在美国,且本站内容仅为非中国大陆网友服务。禁止中国大陆网友浏览本站!若中国大陆网友因错误操作打开本站网页,请立即关闭!中国大陆网友浏览本站存在法律风险,恳请立即关闭本站所有页面!对于您因浏览本站所遭遇的法律问题、安全问题和其他所有问题,本站均无法负责也概不负责。

特别警告:本站推荐各种免费科学上网软件、app和方法,不建议各位网友购买收费账号或服务。若您因付费购买而遭遇骗局,没有得到想要的服务,请把苦水往自己肚子里咽,本站无法承担也概不承担任何责任!

本站严正声明:各位翻墙的网友切勿将本站介绍的翻墙方法运用于违反当地法律法规的活动,本站对网友的遵纪守法行为表示支持,对网友的违法犯罪行为表示反对!

网站管理员定居美国,因此本站所推荐的翻墙软件及翻墙方法都未经测试,发布仅供网友测试和参考,但你懂的——翻墙软件或方法随时有可能失效,因此本站信息具有极强时效性,想要更多有效免费翻墙方法敬请阅读本站最新信息,建议收藏本站!本站为纯粹技术网站,支持科学与民主,支持宗教信仰自由,反对恐怖主义、邪教、伪科学与专制,不支持或反对任何极端主义的政治观点或宗教信仰。有注明出处的信息均为转载文章,转载信息仅供参考,并不表明本站支持其观点或行为。未注明出处的信息为本站原创,转载时也请注明来自本站。

鉴于各种免费翻墙软件甚至是收费翻墙软件可能存在的安全风险及个人隐私泄漏可能,本站提醒各位网友做好各方面的安全防护措施!本站无法对推荐的翻墙软件、应用或服务等进行全面而严格的安全测试,因此无法对其安全性做保证,无法对您因为安全问题或隐私泄漏等问题造成的任何损失承担任何责任!

S. Grand Ave.,Suite 3910,Los Angeles,CA 90071

知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。