有一个不断更改密码的VPN。我有一个自动登录,但显然每次更改密码时vpn连接都会丢失,我必须手动将新密码复制并粘贴到凭证文件中。
http://www.vpnbook.com/freevpn
这很烦人。我意识到vpn可能希望人们不能这样做,但它并不反对ToS而不是非法的,所以在这里与我合作!
我需要一种方法来自动生成一个除了之外没有任何内容的文件 用户名 密码
在不同的行上,就像上面那样。因此,自动将整个页面作为文本文件下载(我可以这样做)将不起作用。除非纯粹而简单,否则OpenVPN将无法理解凭证文件 用户名 密码
,仅此而已。
那么,有什么想法吗?
答案 0 :(得分:1)
这种事情最好通过vpnbook提供的API来完成。然后,脚本可以更轻松地访问信息并将其存储在文本文件中。
除此之外,看起来vpnbook没有API,你将不得不使用一种名为Web Scraping的技术。
要通过“Web Scraping”自动执行此操作,您需要编写执行以下操作的脚本:
我通常使用Ruby和mechanize库进行网页抓取。 “机械化示例”页面中的第一个示例显示了如何访问Google主页,搜索“Hello World”,然后在结果中抓取结果中的链接。这与您尝试执行的操作类似,只是不打印它而是要将其写入文本文件。 (谷歌用Ruby编写文本文件)“:
require 'rubygems'
require 'mechanize'
a = Mechanize.new { |agent|
agent.user_agent_alias = 'Mac Safari'
}
a.get('http://google.com/') do |page|
search_result = page.form_with(:id => 'gbqf') do |search|
search.q = 'Hello world'
end.submit
search_result.links.each do |link|
puts link.text
end
end
要在您的计算机上运行此功能,您需要:
一个。安装红宝石 湾将其保存在名为scrape.rb的文件中 C。使用命令行“ruby scrape.rb”
调用它OSX附带了一款适用于此的旧版ruby。查看ruby站点,了解如何安装它或使其适用于您的操作系统。
在使用像机械化这样的宝石之前,你需要安装它:
gem install mechanize
(这取决于正在安装的Rubygems,我认为它通常带有Ruby)。
如果你是编程新手,这可能听起来像一个大项目,但你将在你的工具箱中拥有一个神奇的工具,你将会觉得你几乎可以“做任何事”你需要,而不是依赖其他开发人员碰巧已经构建了您需要的软件。
注意:对于依赖javascript的网站,机械化不会工作 - 你可以使用Capybara + PhantomJS来运行一个可以从Ruby运行javascript的实际浏览器。
注2:您可能实际上不必通过以下动议:(a)进入登录页面(2)“填写您的信息”,(3)点击“登录”等。根据其身份验证的工作方式,您可以直接转到显示所需信息的页面,并使用基本身份验证或其他方式直接将凭据提供给该页面。你必须看看他们的auth系统是如何工作的,并为此做一些试验和错误。最直接,最有可能工作的方法就是真实用户会做什么...登录登录页面。
写完这一切之后,我遇到了vpnbook-utils库(在搜索“vpnbook api”期间),我认为这样做了你需要的东西:
...使用这个小工具,您可以为免费的VPN提供商vpnbook.com生成OpenVPN配置文件... ...它还从vpnbook.com网站中提取不断变化的凭证......
看起来像一个命令行:
vpnbook config
您可以自动获取凭据并将其写入配置文件。
祝你好运!我仍然建议你学习ruby:)答案 1 :(得分:0)
您甚至不需要解析内容。只需对第二次出现的Username:
进行字符串搜索,在此之前剪切所有内容,使用sed查找下两次出现<strong>
和</strong>
之间的内容。您可以使用curl
或wget -qO-
来获取网站的内容。