%PDF- %PDF-
Direktori : /usr/share/doc/python3-mechanize/html/ |
Current File : //usr/share/doc/python3-mechanize/html/faq.html |
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" /> <title>Frequently Asked Questions — mechanize 0.4.7 documentation</title> <link rel="stylesheet" type="text/css" href="_static/pygments.css" /> <link rel="stylesheet" type="text/css" href="_static/alabaster.css" /> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> <script src="_static/jquery.js"></script> <script src="_static/underscore.js"></script> <script src="_static/doctools.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="Browser API" href="browser_api.html" /> <link rel="prev" title="mechanize" href="index.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> </head><body> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <section id="frequently-asked-questions"> <h1>Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline">¶</a></h1> <div class="contents local topic" id="contents"> <p class="topic-title">Contents</p> <ul class="simple"> <li><p><a class="reference internal" href="#general" id="id1">General</a></p> <ul> <li><p><a class="reference internal" href="#which-version-of-python-do-i-need" id="id2">Which version of Python do I need?</a></p></li> <li><p><a class="reference internal" href="#what-dependencies-does-mechanize-need" id="id3">What dependencies does mechanize need?</a></p></li> <li><p><a class="reference internal" href="#what-license-does-mechanize-use" id="id4">What license does mechanize use?</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#usage" id="id5">Usage</a></p> <ul> <li><p><a class="reference internal" href="#i-m-not-getting-the-html-page-i-expected-to-see" id="id6">I’m not getting the HTML page I expected to see?</a></p></li> <li><p><a class="reference internal" href="#is-javascript-supported" id="id7">Is JavaScript supported?</a></p></li> <li><p><a class="reference internal" href="#my-http-response-data-is-truncated" id="id8">My HTTP response data is truncated?</a></p></li> <li><p><a class="reference internal" href="#is-there-any-example-code" id="id9">Is there any example code?</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#cookies" id="id10">Cookies</a></p> <ul> <li><p><a class="reference internal" href="#which-http-cookie-protocols-does-mechanize-support" id="id11">Which HTTP cookie protocols does mechanize support?</a></p></li> <li><p><a class="reference internal" href="#what-about-rfc-2109" id="id12">What about RFC 2109?</a></p></li> <li><p><a class="reference internal" href="#why-don-t-i-have-any-cookies" id="id13">Why don’t I have any cookies?</a></p></li> <li><p><a class="reference internal" href="#my-response-claims-to-be-empty-but-i-know-it-s-not" id="id14">My response claims to be empty, but I know it’s not?</a></p></li> <li><p><a class="reference internal" href="#what-s-the-difference-between-the-load-and-revert-methods-of-cookiejar" id="id15">What’s the difference between the <cite>.load()</cite> and <cite>.revert()</cite> methods of <cite>CookieJar</cite>?</a></p></li> <li><p><a class="reference internal" href="#is-it-threadsafe" id="id16">Is it threadsafe?</a></p></li> <li><p><a class="reference internal" href="#how-do-i-do-x" id="id17">How do I do <cite>X</cite>?</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#forms" id="id18">Forms</a></p> <ul> <li><p><a class="reference internal" href="#how-do-i-figure-out-what-control-names-and-values-to-use" id="id19">How do I figure out what control names and values to use?</a></p></li> <li><p><a class="reference internal" href="#what-do-those-characters-mean-in-the-string-representations-of-list-controls" id="id20">What do those <cite>‘*’</cite> characters mean in the string representations of list controls?</a></p></li> <li><p><a class="reference internal" href="#what-do-those-parentheses-round-brackets-mean-in-the-string-representations-of-list-controls" id="id21">What do those parentheses (round brackets) mean in the string representations of list controls?</a></p></li> <li><p><a class="reference internal" href="#why-doesn-t-some-control-turn-up-in-the-data-returned-by-click-when-that-control-has-non-none-value" id="id22">Why doesn’t <cite><some control></cite> turn up in the data returned by <cite>.click*()</cite> when that control has non-<cite>None</cite> value?</a></p></li> <li><p><a class="reference internal" href="#why-does-mechanize-not-follow-the-html-4-0-rfc-1866-standards-for-radio-and-multiple-selection-select-controls" id="id23">Why does mechanize not follow the HTML 4.0 / RFC 1866 standards for <cite>RADIO</cite> and multiple-selection <cite>SELECT</cite> controls?</a></p></li> <li><p><a class="reference internal" href="#why-does-click-ing-on-a-button-not-work-for-me" id="id24">Why does <cite>.click()</cite> ing on a button not work for me?</a></p></li> <li><p><a class="reference internal" href="#how-do-i-change-input-type-hidden-field-values-for-example-to-emulate-the-effect-of-javascript-code" id="id25">How do I change <cite>INPUT TYPE=HIDDEN</cite> field values (for example, to emulate the effect of JavaScript code)?</a></p></li> <li><p><a class="reference internal" href="#i-m-having-trouble-debugging-my-code" id="id26">I’m having trouble debugging my code.</a></p></li> <li><p><a class="reference internal" href="#i-have-a-control-containing-a-list-of-integers-how-do-i-select-the-one-whose-value-is-nearest-to-the-one-i-want" id="id27">I have a control containing a list of integers. How do I select the one whose value is nearest to the one I want?</a></p></li> </ul> </li> <li><p><a class="reference internal" href="#miscellaneous" id="id28">Miscellaneous</a></p> <ul> <li><p><a class="reference internal" href="#i-want-to-see-what-my-web-browser-is-doing" id="id29">I want to see what my web browser is doing?</a></p></li> <li><p><a class="reference internal" href="#javascript-is-messing-up-my-web-scraping-what-do-i-do" id="id30">JavaScript is messing up my web-scraping. What do I do?</a></p></li> </ul> </li> </ul> </div> <section id="general"> <h2><a class="toc-backref" href="#id1">General</a><a class="headerlink" href="#general" title="Permalink to this headline">¶</a></h2> <section id="which-version-of-python-do-i-need"> <h3><a class="toc-backref" href="#id2">Which version of Python do I need?</a><a class="headerlink" href="#which-version-of-python-do-i-need" title="Permalink to this headline">¶</a></h3> <p>mechanize works on all python versions, python 2 (>= 2.7) and 3 (>= 3.5).</p> </section> <section id="what-dependencies-does-mechanize-need"> <h3><a class="toc-backref" href="#id3">What dependencies does mechanize need?</a><a class="headerlink" href="#what-dependencies-does-mechanize-need" title="Permalink to this headline">¶</a></h3> <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">html5lib</span> </pre></div> </div> </section> <section id="what-license-does-mechanize-use"> <h3><a class="toc-backref" href="#id4">What license does mechanize use?</a><a class="headerlink" href="#what-license-does-mechanize-use" title="Permalink to this headline">¶</a></h3> <p>mechanize is licensed under the <a class="reference external" href="https://opensource.org/licenses/BSD-3-Clause">BSD-3-clause</a> license.</p> </section> </section> <section id="usage"> <h2><a class="toc-backref" href="#id5">Usage</a><a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2> <section id="i-m-not-getting-the-html-page-i-expected-to-see"> <h3><a class="toc-backref" href="#id6">I’m not getting the HTML page I expected to see?</a><a class="headerlink" href="#i-m-not-getting-the-html-page-i-expected-to-see" title="Permalink to this headline">¶</a></h3> <p>See <a class="reference internal" href="advanced.html#debugging"><span class="std std-ref">Debugging</span></a>.</p> </section> <section id="is-javascript-supported"> <h3><a class="toc-backref" href="#id7">Is JavaScript supported?</a><a class="headerlink" href="#is-javascript-supported" title="Permalink to this headline">¶</a></h3> <p>No, sorry. See <a class="reference internal" href="#jsfaq"><span class="std std-ref">JavaScript is messing up my web-scraping. What do I do?</span></a></p> </section> <section id="my-http-response-data-is-truncated"> <h3><a class="toc-backref" href="#id8">My HTTP response data is truncated?</a><a class="headerlink" href="#my-http-response-data-is-truncated" title="Permalink to this headline">¶</a></h3> <p><cite>mechanize.Browser’s</cite> response objects support the <cite>.seek()</cite> method, and can still be used after <cite>.close()</cite> has been called. Response data is not fetched until it is needed, so navigation away from a URL before fetching all of the response will truncate it. Call <cite>response.get_data()</cite> before navigation if you don’t want that to happen.</p> </section> <section id="is-there-any-example-code"> <h3><a class="toc-backref" href="#id9">Is there any example code?</a><a class="headerlink" href="#is-there-any-example-code" title="Permalink to this headline">¶</a></h3> <p>Look in the <cite>examples/</cite> directory. Note that the examples on the forms page are executable as-is. Contributions of example code would be very welcome!</p> </section> </section> <section id="cookies"> <h2><a class="toc-backref" href="#id10">Cookies</a><a class="headerlink" href="#cookies" title="Permalink to this headline">¶</a></h2> <section id="which-http-cookie-protocols-does-mechanize-support"> <h3><a class="toc-backref" href="#id11">Which HTTP cookie protocols does mechanize support?</a><a class="headerlink" href="#which-http-cookie-protocols-does-mechanize-support" title="Permalink to this headline">¶</a></h3> <p>Netscape and <a class="reference external" href="http://www.ietf.org/rfc/rfc2965.txt">RFC 2965</a>. RFC 2965 handling is switched off by default.</p> </section> <section id="what-about-rfc-2109"> <h3><a class="toc-backref" href="#id12">What about RFC 2109?</a><a class="headerlink" href="#what-about-rfc-2109" title="Permalink to this headline">¶</a></h3> <p>RFC 2109 cookies are currently parsed as Netscape cookies, and treated by default as RFC 2965 cookies thereafter if RFC 2965 handling is enabled, or as Netscape cookies otherwise.</p> </section> <section id="why-don-t-i-have-any-cookies"> <h3><a class="toc-backref" href="#id13">Why don’t I have any cookies?</a><a class="headerlink" href="#why-don-t-i-have-any-cookies" title="Permalink to this headline">¶</a></h3> <p>See <a class="reference internal" href="advanced.html#cookies"><span class="std std-ref">Cookies</span></a>.</p> </section> <section id="my-response-claims-to-be-empty-but-i-know-it-s-not"> <h3><a class="toc-backref" href="#id14">My response claims to be empty, but I know it’s not?</a><a class="headerlink" href="#my-response-claims-to-be-empty-but-i-know-it-s-not" title="Permalink to this headline">¶</a></h3> <p>Did you call <cite>response.read()</cite> (e.g., in a debug statement), then forget that all the data has already been read? In that case, you may want to use <cite>mechanize.response_seek_wrapper</cite>. <cite>mechanize.Browser</cite> always returns seekable responses, so it’s not necessary to use this explicitly in that case.</p> </section> <section id="what-s-the-difference-between-the-load-and-revert-methods-of-cookiejar"> <h3><a class="toc-backref" href="#id15">What’s the difference between the <cite>.load()</cite> and <cite>.revert()</cite> methods of <cite>CookieJar</cite>?</a><a class="headerlink" href="#what-s-the-difference-between-the-load-and-revert-methods-of-cookiejar" title="Permalink to this headline">¶</a></h3> <p><cite>.load()</cite> <em>appends</em> cookies from a file. <cite>.revert()</cite> discards all existing cookies held by the <cite>CookieJar</cite> first (but it won’t lose any existing cookies if the loading fails).</p> </section> <section id="is-it-threadsafe"> <h3><a class="toc-backref" href="#id16">Is it threadsafe?</a><a class="headerlink" href="#is-it-threadsafe" title="Permalink to this headline">¶</a></h3> <p>See <a class="reference internal" href="advanced.html#threading"><span class="std std-ref">Thread safety</span></a>.</p> </section> <section id="how-do-i-do-x"> <h3><a class="toc-backref" href="#id17">How do I do <cite>X</cite>?</a><a class="headerlink" href="#how-do-i-do-x" title="Permalink to this headline">¶</a></h3> <p>Refer to the API documentation in <a class="reference internal" href="browser_api.html"><span class="doc">Browser API</span></a>.</p> </section> </section> <section id="forms"> <h2><a class="toc-backref" href="#id18">Forms</a><a class="headerlink" href="#forms" title="Permalink to this headline">¶</a></h2> <section id="how-do-i-figure-out-what-control-names-and-values-to-use"> <h3><a class="toc-backref" href="#id19">How do I figure out what control names and values to use?</a><a class="headerlink" href="#how-do-i-figure-out-what-control-names-and-values-to-use" title="Permalink to this headline">¶</a></h3> <p><cite>print(form)</cite> is usually all you need. In your code, things like the <cite>HTMLForm.items</cite> attribute of <a class="reference internal" href="forms_api.html#mechanize.HTMLForm" title="mechanize.HTMLForm"><code class="xref py py-class docutils literal notranslate"><span class="pre">mechanize.HTMLForm</span></code></a> instances can be useful to inspect forms at runtime. Note that it’s possible to use item labels instead of item names, which can be useful — use the <cite>by_label</cite> arguments to the various methods, and the <cite>.get_value_by_label()</cite> / <cite>.set_value_by_label()</cite> methods on <cite>ListControl</cite>.</p> </section> <section id="what-do-those-characters-mean-in-the-string-representations-of-list-controls"> <h3><a class="toc-backref" href="#id20">What do those <cite>‘*’</cite> characters mean in the string representations of list controls?</a><a class="headerlink" href="#what-do-those-characters-mean-in-the-string-representations-of-list-controls" title="Permalink to this headline">¶</a></h3> <p>A <cite>*</cite> next to an item means that item is selected.</p> </section> <section id="what-do-those-parentheses-round-brackets-mean-in-the-string-representations-of-list-controls"> <h3><a class="toc-backref" href="#id21">What do those parentheses (round brackets) mean in the string representations of list controls?</a><a class="headerlink" href="#what-do-those-parentheses-round-brackets-mean-in-the-string-representations-of-list-controls" title="Permalink to this headline">¶</a></h3> <p>Parentheses <cite>(foo)</cite> around an item mean that item is disabled.</p> </section> <section id="why-doesn-t-some-control-turn-up-in-the-data-returned-by-click-when-that-control-has-non-none-value"> <h3><a class="toc-backref" href="#id22">Why doesn’t <cite><some control></cite> turn up in the data returned by <cite>.click*()</cite> when that control has non-<cite>None</cite> value?</a><a class="headerlink" href="#why-doesn-t-some-control-turn-up-in-the-data-returned-by-click-when-that-control-has-non-none-value" title="Permalink to this headline">¶</a></h3> <p>Either the control is disabled, or it is not successful for some other reason. ‘Successful’ (see <a class="reference external" href="http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.2">HTML 4 specification</a>) means that the control will cause data to get sent to the server.</p> </section> <section id="why-does-mechanize-not-follow-the-html-4-0-rfc-1866-standards-for-radio-and-multiple-selection-select-controls"> <h3><a class="toc-backref" href="#id23">Why does mechanize not follow the HTML 4.0 / RFC 1866 standards for <cite>RADIO</cite> and multiple-selection <cite>SELECT</cite> controls?</a><a class="headerlink" href="#why-does-mechanize-not-follow-the-html-4-0-rfc-1866-standards-for-radio-and-multiple-selection-select-controls" title="Permalink to this headline">¶</a></h3> <p>Because by default, it follows browser behaviour when setting the initially-selected items in list controls that have no items explicitly selected in the HTML.</p> </section> <section id="why-does-click-ing-on-a-button-not-work-for-me"> <h3><a class="toc-backref" href="#id24">Why does <cite>.click()</cite> ing on a button not work for me?</a><a class="headerlink" href="#why-does-click-ing-on-a-button-not-work-for-me" title="Permalink to this headline">¶</a></h3> <p>Clicking on a <cite>RESET</cite> button doesn’t do anything, by design - this is a library for web automation, not an interactive browser. Even in an interactive browser, clicking on <cite>RESET</cite> sends nothing to the server, so there is little point in having <cite>.click()</cite> do anything special here.</p> <p>Clicking on a <cite>BUTTON TYPE=BUTTON</cite> doesn’t do anything either, also by design. This time, the reason is that that <cite>BUTTON</cite> is only in the HTML standard so that one can attach JavaScript callbacks to its events. Their execution may result in information getting sent back to the server. mechanize, however, knows nothing about these callbacks, so it can’t do anything useful with a click on a <cite>BUTTON</cite> whose type is <cite>BUTTON</cite>.</p> <p>Generally, JavaScript may be messing things up in all kinds of ways. See <a class="reference internal" href="#jsfaq"><span class="std std-ref">JavaScript is messing up my web-scraping. What do I do?</span></a>.</p> </section> <section id="how-do-i-change-input-type-hidden-field-values-for-example-to-emulate-the-effect-of-javascript-code"> <h3><a class="toc-backref" href="#id25">How do I change <cite>INPUT TYPE=HIDDEN</cite> field values (for example, to emulate the effect of JavaScript code)?</a><a class="headerlink" href="#how-do-i-change-input-type-hidden-field-values-for-example-to-emulate-the-effect-of-javascript-code" title="Permalink to this headline">¶</a></h3> <p>As with any control, set the control’s <cite>readonly</cite> attribute false.</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">form</span><span class="o">.</span><span class="n">find_control</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span><span class="o">.</span><span class="n">readonly</span> <span class="o">=</span> <span class="kc">False</span> <span class="c1"># allow changing .value of control foo</span> <span class="n">form</span><span class="o">.</span><span class="n">set_all_readonly</span><span class="p">(</span><span class="kc">False</span><span class="p">)</span> <span class="c1"># allow changing the .value of all controls</span> </pre></div> </div> </section> <section id="i-m-having-trouble-debugging-my-code"> <h3><a class="toc-backref" href="#id26">I’m having trouble debugging my code.</a><a class="headerlink" href="#i-m-having-trouble-debugging-my-code" title="Permalink to this headline">¶</a></h3> <p>See <a class="reference internal" href="advanced.html#debugging"><span class="std std-ref">Debugging</span></a>.</p> </section> <section id="i-have-a-control-containing-a-list-of-integers-how-do-i-select-the-one-whose-value-is-nearest-to-the-one-i-want"> <h3><a class="toc-backref" href="#id27">I have a control containing a list of integers. How do I select the one whose value is nearest to the one I want?</a><a class="headerlink" href="#i-have-a-control-containing-a-list-of-integers-how-do-i-select-the-one-whose-value-is-nearest-to-the-one-i-want" title="Permalink to this headline">¶</a></h3> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">bisect</span> <span class="k">def</span> <span class="nf">closest_int_value</span><span class="p">(</span><span class="n">form</span><span class="p">,</span> <span class="n">ctrl_name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span> <span class="n">values</span> <span class="o">=</span> <span class="nb">map</span><span class="p">(</span><span class="nb">int</span><span class="p">,</span> <span class="p">[</span><span class="n">item</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">form</span><span class="o">.</span><span class="n">find_control</span><span class="p">(</span><span class="n">ctrl_name</span><span class="p">)</span><span class="o">.</span><span class="n">items</span><span class="p">])</span> <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">values</span><span class="p">[</span><span class="n">bisect</span><span class="o">.</span><span class="n">bisect</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">])</span> <span class="n">form</span><span class="p">[</span><span class="s2">"distance"</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">closest_int_value</span><span class="p">(</span><span class="n">form</span><span class="p">,</span> <span class="s2">"distance"</span><span class="p">,</span> <span class="mi">23</span><span class="p">)]</span> </pre></div> </div> </section> </section> <section id="miscellaneous"> <h2><a class="toc-backref" href="#id28">Miscellaneous</a><a class="headerlink" href="#miscellaneous" title="Permalink to this headline">¶</a></h2> <section id="i-want-to-see-what-my-web-browser-is-doing"> <h3><a class="toc-backref" href="#id29">I want to see what my web browser is doing?</a><a class="headerlink" href="#i-want-to-see-what-my-web-browser-is-doing" title="Permalink to this headline">¶</a></h3> <p>Use the developer tools for your browser (you may have to install them first). These provide excellent views into all HTTP requests/responses in the browser.</p> </section> <section id="javascript-is-messing-up-my-web-scraping-what-do-i-do"> <span id="jsfaq"></span><h3><a class="toc-backref" href="#id30">JavaScript is messing up my web-scraping. What do I do?</a><a class="headerlink" href="#javascript-is-messing-up-my-web-scraping-what-do-i-do" title="Permalink to this headline">¶</a></h3> <p>JavaScript is used in web pages for many purposes – for example: creating content that was not present in the page at load time, submitting or filling in parts of forms in response to user actions, setting cookies, etc. mechanize does not provide any support for JavaScript.</p> <p>If you come across this in a page you want to automate, you have a few options. Here they are, roughly in order of simplicity:</p> <blockquote> <div><ul class="simple"> <li><p>Figure out what the JavaScript is doing and emulate it in your Python code. The simplest case is if the JavaScript is setting some cookies. In that case you can inspect the cookies in your browser and emulate setting them in mechanize with <a class="reference internal" href="browser_api.html#mechanize.Browser.set_simple_cookie" title="mechanize.Browser.set_simple_cookie"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mechanize.Browser.set_simple_cookie()</span></code></a>.</p></li> <li><p>More complex is to use your browser developer tools to see exactly what requests are sent by the browser and emulate them in mechanize by using <a class="reference internal" href="browser_api.html#mechanize.Request" title="mechanize.Request"><code class="xref py py-class docutils literal notranslate"><span class="pre">mechanize.Request</span></code></a> to create the request manually and open it with <a class="reference internal" href="browser_api.html#mechanize.Browser.open" title="mechanize.Browser.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mechanize.Browser.open()</span></code></a>.</p></li> <li><p>Third is to use some browser automation framework/library to scrape the site instead of using mechanize. These libraries typically drive a headless version of a full browser that can execute all JavaScript. They are typically much slower than using mechanize and far more resource intensive, but do work as a last resort.</p></li> </ul> </div></blockquote> </section> </section> </section> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h1 class="logo"><a href="index.html">mechanize</a></h1> <h3>Navigation</h3> <p class="caption" role="heading"><span class="caption-text">Table of Contents:</span></p> <ul class="current"> <li class="toctree-l1 current"><a class="current reference internal" href="#">Frequently Asked Questions</a><ul> <li class="toctree-l2"><a class="reference internal" href="#general">General</a></li> <li class="toctree-l2"><a class="reference internal" href="#usage">Usage</a></li> <li class="toctree-l2"><a class="reference internal" href="#cookies">Cookies</a></li> <li class="toctree-l2"><a class="reference internal" href="#forms">Forms</a></li> <li class="toctree-l2"><a class="reference internal" href="#miscellaneous">Miscellaneous</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="browser_api.html">Browser API</a></li> <li class="toctree-l1"><a class="reference internal" href="forms_api.html">HTML Forms API</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced.html">Advanced topics</a></li> </ul> <div class="relations"> <h3>Related Topics</h3> <ul> <li><a href="index.html">Documentation overview</a><ul> <li>Previous: <a href="index.html" title="previous chapter">mechanize</a></li> <li>Next: <a href="browser_api.html" title="next chapter">Browser API</a></li> </ul></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3 id="searchlabel">Quick search</h3> <div class="searchformwrapper"> <form class="search" action="search.html" method="get"> <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/> <input type="submit" value="Go" /> </form> </div> </div> <script>$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="footer"> ©2021, Kovid Goyal. | Powered by <a href="http://sphinx-doc.org/">Sphinx 4.3.2</a> & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> | <a href="_sources/faq.rst.txt" rel="nofollow">Page source</a> </div> </body> </html>