1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><no title> — WebTest v1.3 documentation</title>
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '1.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="WebTest v1.3 documentation" href="../index.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../index.html">WebTest v1.3 documentation</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="highlight-python"><div class="highlight"><pre><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">wsgiproxy.exactproxy</span> <span class="kn">import</span> <span class="n">proxy_exact_request</span>
<span class="gp">>>> </span><span class="kn">from</span> <span class="nn">webtest</span> <span class="kn">import</span> <span class="n">TestApp</span>
<span class="gp">>>> </span><span class="n">app</span> <span class="o">=</span> <span class="n">TestApp</span><span class="p">(</span><span class="n">proxy_exact_request</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">resp</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'http://python.org'</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">resp</span>
<span class="go"><200 OK text/html body='<!DOCTYPE...\n\n'/15978></span>
<span class="gp">>>> </span><span class="k">print</span> <span class="n">resp</span>
<span class="go">Response: 200 OK</span>
<span class="go">Date: ...</span>
<span class="go">Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ssl/2.2.3 OpenSSL/0.9.8c</span>
<span class="go">Last-Modified: ...</span>
<span class="go">ETag: ...</span>
<span class="go">Accept-Ranges: bytes</span>
<span class="go">Content-Type: text/html</span>
<span class="go">Content-Length: ...</span>
<span class="gp">...</span>
<span class="gp">>>> </span><span class="kn">from</span> <span class="nn">wsgifilter.proxyapp</span> <span class="kn">import</span> <span class="n">DebugHeaders</span>
<span class="gp">>>> </span><span class="n">app</span> <span class="o">=</span> <span class="n">TestApp</span><span class="p">(</span><span class="n">DebugHeaders</span><span class="p">(</span><span class="n">proxy_exact_request</span><span class="p">))</span>
<span class="gp">>>> </span><span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'http://python.org/'</span><span class="p">)</span>
<span class="go">Incoming headers: (GET http://python.org/ SCRIPT_NAME='')</span>
<span class="go"> Host: python.org:80</span>
<span class="go">Outgoing headers: (200 OK)</span>
<span class="go"> Date: ...</span>
<span class="go"> Server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ssl/2.2.3 OpenSSL/0.9.8c</span>
<span class="go"> Last-Modified: ...</span>
<span class="go"> Etag: ...</span>
<span class="go"> Accept-Ranges: bytes</span>
<span class="go"> Content-Length: ...</span>
<span class="go"> Content-Type: text/html</span>
<span class="go"><200 OK text/html body='<!DOCTYPE...\n\n'/15978></span>
<span class="gp">>>> </span><span class="n">app</span> <span class="o">=</span> <span class="n">TestApp</span><span class="p">(</span><span class="n">proxy_exact_request</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">resp</span> <span class="o">=</span> <span class="n">app</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'http://python.org'</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">resp</span><span class="o">.</span><span class="n">lxml</span>
<span class="go"><Element html at ...></span>
<span class="gp">>>> </span><span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">resp</span><span class="o">.</span><span class="n">lxml</span><span class="o">.</span><span class="n">xpath</span><span class="p">(</span><span class="s">'//a'</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">if</span> <span class="n">a</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'href'</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'http:'</span><span class="p">):</span>
<span class="gp">... </span> <span class="k">continue</span>
<span class="gp">... </span> <span class="k">print</span> <span class="n">a</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">'href'</span><span class="p">),</span> <span class="n">a</span><span class="o">.</span><span class="n">text_content</span><span class="p">()</span>
<span class="go">/</span>
<span class="go">#left-hand-navigation</span>
<span class="go">#content-body</span>
<span class="go">/search Advanced Search</span>
<span class="go">/about/ About</span>
<span class="go">/news/ News</span>
<span class="go">/doc/ Documentation</span>
<span class="go">/download/ Download</span>
<span class="go">/community/ Community</span>
<span class="go">/psf/ Foundation</span>
<span class="go">/dev/ Core Development</span>
<span class="go">/links/ Links</span>
<span class="go">/download/releases/2.5.1 Quick Links (2.5.1)</span>
<span class="go">/ftp/python/2.5.1/python-2.5.1.msi Windows Installer</span>
<span class="go">/ftp/python/2.5.1/Python-2.5.1.tar.bz2 Source Distribution</span>
<span class="go">/community/jobs Python Jobs</span>
<span class="go">/psf/donations/ Donate to the PSF</span>
<span class="go">/about/success/usa</span>
<span class="go"><BLANKLINE></span>
<span class="go">about/success/rackspace Rackspace</span>
<span class="go">about/success/ilm Industrial Light and Magic</span>
<span class="go">about/success/astra AstraZeneca</span>
<span class="go">about/success/honeywell Honeywell</span>
<span class="go">about/success and many others</span>
<span class="go">/about/quotes more...</span>
<span class="go">/doc/topics/database Databases</span>
<span class="go">/doc/topics/database/modules Others</span>
<span class="go">/community/sigs/current/edu-sig Education</span>
<span class="go">/about/apps Networking</span>
<span class="go">/about/apps Software Development</span>
<span class="go">/about/apps Game Development</span>
<span class="go">/about/apps more...</span>
<span class="go">/psf/license open source license</span>
<span class="go">/psf Python Software Foundation (PSF)</span>
<span class="go">/about Read more</span>
<span class="go">/download try Python now</span>
<span class="go">/download/releases/3.0 second alpha release</span>
<span class="go">/download/releases/3.0 first alpha release</span>
<span class="go">/channews.rdf RSS</span>
<span class="go">/about/website Website maintained by the Python community</span>
<span class="go">/psf Python Software Foundation</span>
<span class="go">/about/legal Legal Statements</span>
<span class="gp">>>> </span><span class="n">resp</span> <span class="o">=</span> <span class="n">resp</span><span class="o">.</span><span class="n">click</span><span class="p">(</span><span class="s">'Legal Statements'</span><span class="p">)</span>
<span class="gp">>>> </span><span class="n">resp</span><span class="o">.</span><span class="n">request</span><span class="o">.</span><span class="n">url</span>
<span class="go">'http://python.org/about/legal'</span>
<span class="gp">>>> </span><span class="n">resp</span><span class="o">.</span><span class="n">status</span>
<span class="go">'301 Moved Permanently'</span>
<span class="gp">>>> </span><span class="n">resp</span> <span class="o">=</span> <span class="n">resp</span><span class="o">.</span><span class="n">follow</span><span class="p">()</span>
<span class="gp">>>> </span><span class="c">#resp.showbrowser()</span>
<span class="gp">>>> </span><span class="n">resp</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">html</span><span class="o">.</span><span class="n">head</span><span class="o">.</span><span class="n">title</span>
<span class="go"><title>Legal Statements</title></span>
<span class="gp">>>> </span><span class="kn">import</span> <span class="nn">re</span>
<span class="gp">>>> </span><span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="s">r'<title>(.*?)</title>'</span><span class="p">,</span> <span class="n">resp</span><span class="o">.</span><span class="n">body</span><span class="p">)</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
<span class="go">'Legal Statements'</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/chipy-presentation/proxy_example.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<input type="text" name="q" size="18" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../index.html">WebTest v1.3 documentation</a> »</li>
</ul>
</div>
<div class="footer">
© Copyright 2008, Ian Bicking.
Last updated on Aug 28, 2011.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
</html>
|