用python进行web应用:创建一个简单的web客户端

用python进行web应用:创建一个简单的web客户端
一.首先讲一下统一资源定位符,简单的Web应用被称为URL(统一资源定位器,Uniform Resource Locator)的web地址。URL是大型标识符URI(统一资源标识,Uniform Resource Identifier)的一部分。
网络定位元素:
1.部件:描述
2.user:登录名
3.password:用户的密码
4.host:web服务器运行的机器名或地址
5.port:端口号
二.urllib2模块
urllib2是python的一个获取url(Uniform Resource Locators,统一资源定址器)的模块。它用urlopen函数的形式提供了一个非常简洁的接口。这使得用各种各样的协议获取url成为可能。它同时 也提供了一个稍微复杂的接口来处理常见的状况-如基本的认证,cookies,代理,等等。这些都是由叫做opener和handler的对象来处理的。
import urllib2  
response = urllib2.urlopen( ' http://python.org/ ')  
html = response.read() 
三.下面是一个通过访问yago的提供的接口来统计wiki中数据在yago中的覆盖率实例
def coveragerate(infile,outfile):
  rfile = open(infile, ' r ')
  wfile = open(outfile, ' wa+ ')
  unfindcount = 0.0
   while(1):
    line = rfile.readline()
    tmpline = line
     if  not line:
       break
    line = line.split( '   ')
    URL =  ' https://d5gate.ag5.mpi-sb.mpg.de/webyagospotlx/WebInterface?passedQuery=I%3A0%09S%3A '
     for i  in range(len(line)):
       if i == 0:
        URL += line[i].strip()
       else:
        URL +=  ' %20 ' + line[i].strip()
    URL +=  ' %3B '
     print URL
    req = urllib2.Request(URL)
     try:
      response = urllib2.urlopen(req)
     except URLError,e:
       print e.reason
    html = response.read().split( ' \n ')
     for i  in range(len(html)):
       if  ' </div><h2>Results</h2>There were no results.<P> '  in html:
        unfindcount += 1.0
        wfile.write(tmpline.strip() +  '  Flase '+ ' \n ')
         print  ' run '
         break
       else:
        wfile.write(tmpline.strip() +  '  True '+ ' \n ')
         print  ' run '
         break
  covrate = 1.0 - (unfindcount/len(html))
  wfile(covrate)
  wfile.close()
  rfile.close()

通过观察yago在进行查询的时候URL的变化规则,来补全URL,在进行访问就可以获得该页面的html源码。最后通过分析源码,来判断是否被查询到,最后在统计一下能够被覆盖的数据即可。


你可能感兴趣的:(用python进行web应用:创建一个简单的web客户端)