vpnbook.py

vpnbook提供免费的vpn服务,当然了,免费的肯定有限制,vpnbook的限制在于速度,一般只有10kb/s左右,用来看看网页还可以,当主力就不够了。

话说IE存在的意义就是用来下载其它浏览器,我写这个脚本也是这个意思,有时候下载其它代理程序首先得番茄,那么,这个慢悠悠的vpn就是没办法的办法了。

 

这个脚本我写了三次:

第一次是使用urllib2 + BeautifulSoup

第二次是使用requests + BeautifulSoup

第三次是这个,原因在于第一次和第二次都需要第三方模块,不能满足拿来即用的原则,所以就自己瞎搞再写一遍了。

 

废话不多说,上代码:

#! /usr/bin/python
#coding:utf-8

import re
import urllib2

url = "https://www.vpnbook.com/freevpn"

response = urllib2.urlopen(url)

html = response.read()

# print html

m = re.search('<ul\sclass=\"disc\">.*</ul>',html,re.S)
if m:
    string = m.group()
    result = string[:string.find("</ul>")+len("</ul>")]
    # print(result)
    print "Server:"
    k = re.findall(r"<li><strong>.*\.vpnbook.com</strong>",result)
    for one in k:
        print "\t"+one[one.find("<strong>")+len("<strong>"):one.find("</strong>")]
    u = re.findall(r"<li>Username.*</li>",result)
    user = u[0]
    print "Username:"
    print "\t"+user[user.find("<strong>")+len("<strong>"):user.find("</strong>")]
    p = re.findall(r"<li>Password.*</strong>",result)
    password = p[0]
    print "Password:"
    print "\t"+password[password.find("<strong>")+len("<strong>"):password.find("</strong>")]
else:
    print "No matched"

if __name__ == "__main__":
    raw_input()
else:
    pass

enjoy it!

 

 

=============================================2014-04-29 00:49=================================================

 1 #! /usr/bin/python
 2 #coding:utf-8
 3 
 4 import re
 5 import urllib2
 6 
 7 url = "https://www.vpnbook.com/freevpn"
 8 
 9 response = urllib2.urlopen(url)
10 
11 html = response.read()
12 
13 # print html
14 
15 m = re.search('<ul\sclass=\"disc\">.*?</ul>',html,re.S)
16 if m:
17     result = m.group()
18     # print(result)
19     print "Server:"
20     k = re.findall(r"<li><strong>.*\.vpnbook.com</strong>",result)
21     for one in k:
22         print "\t"+one[one.find("<strong>")+len("<strong>"):one.find("</strong>")]
23     u = re.findall(r"<li>Username.*</li>",result)
24     user = u[0]
25     print "Username:"
26     print "\t"+user[user.find("<strong>")+len("<strong>"):user.find("</strong>")]
27     p = re.findall(r"<li>Password.*</strong>",result)
28     password = p[0]
29     print "Password:"
30     print "\t"+password[password.find("<strong>")+len("<strong>"):password.find("</strong>")]
31 else:
32     print "No matched"
33 
34 if __name__ == "__main__":
35     raw_input()
36 else:
37     pass

代码更新了,看看有什么差别?

15行的地方多了一个问号,17行的地方少了一行代码,这里是正则表达式的贪婪模式与懒惰模式的区别,具体请参考相关文章

posted @ 2014-04-28 17:25  r3call  阅读(3801)  评论(0编辑  收藏  举报