python 爬虫

<div class="forFlow">
        
        <div id="post_detail">
<!--done-->
<div id="topics">
    <div class="post">
        <h1 class="postTitle">
            <a id="cb_post_title_url" class="postTitle2" href="https://www.cnblogs.com/wupeiqi/articles/6283017.html">Q2Day79</a>
        </h1>
        <div class="clear"></div>
        <div class="postBody">
            <div id="cnblogs_post_body" class="blogpost-body"><h3>requests</h3>
<p>Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。</p>
<p>Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。</p>
<p><strong>1、GET请求</strong></p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_992077" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div><div class="line number17 index16 alt2">17</div><div class="line number18 index17 alt1">18</div><div class="line number19 index18 alt2">19</div><div class="line number20 index19 alt1">20</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># 1、无参数实例</code></div><div class="line number2 index1 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number3 index2 alt2"><code class="python keyword">import</code> <code class="python plain">requests</code></div><div class="line number4 index3 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number5 index4 alt2"><code class="python plain">ret </code><code class="python keyword">=</code> <code class="python plain">requests.get(</code><code class="python string">'https://github.com/timeline.json'</code><code class="python plain">)</code></div><div class="line number6 index5 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number7 index6 alt2"><code class="python functions">print</code> <code class="python plain">ret.url</code></div><div class="line number8 index7 alt1"><code class="python functions">print</code> <code class="python plain">ret.text</code></div><div class="line number9 index8 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number10 index9 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number11 index10 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number12 index11 alt1"><code class="python comments"># 2、有参数实例</code></div><div class="line number13 index12 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number14 index13 alt1"><code class="python keyword">import</code> <code class="python plain">requests</code></div><div class="line number15 index14 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number16 index15 alt1"><code class="python plain">payload </code><code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'key1'</code><code class="python plain">: </code><code class="python string">'value1'</code><code class="python plain">, </code><code class="python string">'key2'</code><code class="python plain">: </code><code class="python string">'value2'</code><code class="python plain">}</code></div><div class="line number17 index16 alt2"><code class="python plain">ret </code><code class="python keyword">=</code> <code class="python plain">requests.get(</code><code class="python string">"http://httpbin.org/get"</code><code class="python plain">, params</code><code class="python keyword">=</code><code class="python plain">payload)</code></div><div class="line number18 index17 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number19 index18 alt2"><code class="python functions">print</code> <code class="python plain">ret.url</code></div><div class="line number20 index19 alt1"><code class="python functions">print</code> <code class="python plain">ret.text</code></div></div></td></tr></tbody></table></div></div>
</div>
<p><strong>2、POST请求</strong></p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_90550" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div><div class="line number17 index16 alt2">17</div><div class="line number18 index17 alt1">18</div><div class="line number19 index18 alt2">19</div><div class="line number20 index19 alt1">20</div><div class="line number21 index20 alt2">21</div><div class="line number22 index21 alt1">22</div><div class="line number23 index22 alt2">23</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># 1、基本POST实例</code></div><div class="line number2 index1 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number3 index2 alt2"><code class="python keyword">import</code> <code class="python plain">requests</code></div><div class="line number4 index3 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number5 index4 alt2"><code class="python plain">payload </code><code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'key1'</code><code class="python plain">: </code><code class="python string">'value1'</code><code class="python plain">, </code><code class="python string">'key2'</code><code class="python plain">: </code><code class="python string">'value2'</code><code class="python plain">}</code></div><div class="line number6 index5 alt1"><code class="python plain">ret </code><code class="python keyword">=</code> <code class="python plain">requests.post(</code><code class="python string">"http://httpbin.org/post"</code><code class="python plain">, data</code><code class="python keyword">=</code><code class="python plain">payload)</code></div><div class="line number7 index6 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number8 index7 alt1"><code class="python functions">print</code> <code class="python plain">ret.text</code></div><div class="line number9 index8 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number10 index9 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number11 index10 alt2"><code class="python comments"># 2、发送请求头和数据实例</code></div><div class="line number12 index11 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number13 index12 alt2"><code class="python keyword">import</code> <code class="python plain">requests</code></div><div class="line number14 index13 alt1"><code class="python keyword">import</code> <code class="python plain">json</code></div><div class="line number15 index14 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number16 index15 alt1"><code class="python plain">url </code><code class="python keyword">=</code> <code class="python string">'https://api.github.com/some/endpoint'</code></div><div class="line number17 index16 alt2"><code class="python plain">payload </code><code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'some'</code><code class="python plain">: </code><code class="python string">'data'</code><code class="python plain">}</code></div><div class="line number18 index17 alt1"><code class="python plain">headers </code><code class="python keyword">=</code> <code class="python plain">{</code><code class="python string">'content-type'</code><code class="python plain">: </code><code class="python string">'application/json'</code><code class="python plain">}</code></div><div class="line number19 index18 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number20 index19 alt1"><code class="python plain">ret </code><code class="python keyword">=</code> <code class="python plain">requests.post(url, data</code><code class="python keyword">=</code><code class="python plain">json.dumps(payload), headers</code><code class="python keyword">=</code><code class="python plain">headers)</code></div><div class="line number21 index20 alt2"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number22 index21 alt1"><code class="python functions">print</code> <code class="python plain">ret.text</code></div><div class="line number23 index22 alt2"><code class="python functions">print</code> <code class="python plain">ret.cookies</code></div></div></td></tr></tbody></table></div></div>
</div>
<p><strong>3、其他请求</strong></p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_961334" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python plain">requests.get(url, params</code><code class="python keyword">=</code><code class="python color1">None</code><code class="python plain">, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number2 index1 alt1"><code class="python plain">requests.post(url, data</code><code class="python keyword">=</code><code class="python color1">None</code><code class="python plain">, json</code><code class="python keyword">=</code><code class="python color1">None</code><code class="python plain">, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number3 index2 alt2"><code class="python plain">requests.put(url, data</code><code class="python keyword">=</code><code class="python color1">None</code><code class="python plain">, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number4 index3 alt1"><code class="python plain">requests.head(url, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number5 index4 alt2"><code class="python plain">requests.delete(url, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number6 index5 alt1"><code class="python plain">requests.patch(url, data</code><code class="python keyword">=</code><code class="python color1">None</code><code class="python plain">, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number7 index6 alt2"><code class="python plain">requests.options(url, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div><div class="line number8 index7 alt1"><code class="python spaces">&nbsp;</code>&nbsp;</div><div class="line number9 index8 alt2"><code class="python comments"># 以上方法均是在此方法的基础上构建</code></div><div class="line number10 index9 alt1"><code class="python plain">requests.request(method, url, </code><code class="python keyword">*</code><code class="python keyword">*</code><code class="python plain">kwargs)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p><strong>4、更多参数</strong></p>
<div class="cnblogs_code" οnclick="cnblogs_code_show('8a5b886e-9d28-476c-b6df-edff55fd51ec')"><img id="code_img_closed_8a5b886e-9d28-476c-b6df-edff55fd51ec" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_8a5b886e-9d28-476c-b6df-edff55fd51ec" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('8a5b886e-9d28-476c-b6df-edff55fd51ec',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_8a5b886e-9d28-476c-b6df-edff55fd51ec" class="cnblogs_code_hide">
<pre><span style="color: #0000ff;">def</span> request(method, url, **<span style="color: #000000;">kwargs):
    </span><span style="color: #800000;">"""</span><span style="color: #800000;">Constructs and sends a :class:`Request &lt;Request&gt;`.

    :param method: method for the new :class:`Request` object.
    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
    :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`.
    :param json: (optional) json data to send in the body of the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload.
        ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
        or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string
        defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
        to add for the file.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How long to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) &lt;timeouts&gt;` tuple.
    :type timeout: float or tuple
    :param allow_redirects: (optional) Boolean. Set to True if POST/PUT/DELETE redirect following is allowed.
    :type allow_redirects: bool
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) whether the SSL cert will be verified. A CA_BUNDLE path can also be provided. Defaults to ``True``.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded.
    :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair.
    :return: :class:`Response &lt;Response&gt;` object
    :rtype: requests.Response

    Usage::

      &gt;&gt;&gt; import requests
      &gt;&gt;&gt; req = requests.request('GET', 'http://httpbin.org/get')
      &lt;Response [200]&gt;
    </span><span style="color: #800000;">"""</span></pre>
</div>
<span class="cnblogs_code_collapse">参数列表</span></div>
<p>&nbsp;</p>
<div class="cnblogs_code" οnclick="cnblogs_code_show('28b34e40-5e7f-43f0-9b92-4b0e2d022d81')"><img id="code_img_closed_28b34e40-5e7f-43f0-9b92-4b0e2d022d81" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_28b34e40-5e7f-43f0-9b92-4b0e2d022d81" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('28b34e40-5e7f-43f0-9b92-4b0e2d022d81',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_28b34e40-5e7f-43f0-9b92-4b0e2d022d81" class="cnblogs_code_hide">
<pre><span style="color: #0000ff;">def</span><span style="color: #000000;"> param_method_url():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='get', url='http://127.0.0.1:8000/test/')</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='post', url='http://127.0.0.1:8000/test/')</span>
    <span style="color: #0000ff;">pass</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_param():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> - 可以是字典</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> - 可以是字符串</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> - 可以是字节(ascii编码以内)</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='get',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> params={'k1': 'v1', 'k2': '水电费'})</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='get',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> params="k1=v1&amp;k2=水电费&amp;k3=v3&amp;k3=vv3")</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='get',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> params=bytes("k1=v1&amp;k2=k2&amp;k3=v3&amp;k3=vv3", encoding='utf8'))</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> 错误</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='get',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> params=bytes("k1=v1&amp;k2=水电费&amp;k3=v3&amp;k3=vv3", encoding='utf8'))</span>
    <span style="color: #0000ff;">pass</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_data():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> 可以是字典</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 可以是字符串</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 可以是字节</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 可以是文件对象</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> data={'k1': 'v1', 'k2': '水电费'})</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> data="k1=v1; k2=v2; k3=v3; k3=v4"</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> )</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> data="k1=v1;k2=v2;k3=v3;k3=v4",</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> headers={'Content-Type': 'application/x-www-form-urlencoded'}</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> )</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> data=open('data_file.py', mode='r', encoding='utf-8'), # 文件内容是:k1=v1;k2=v2;k3=v3;k3=v4</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> headers={'Content-Type': 'application/x-www-form-urlencoded'}</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> )</span>
    <span style="color: #0000ff;">pass</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_json():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> 将json中对应的数据进行序列化成一个字符串,json.dumps(...)</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 然后发送到服务器端的body中,并且Content-Type是 {'Content-Type': 'application/json'}</span>
    requests.request(method=<span style="color: #800000;">'</span><span style="color: #800000;">POST</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">http://127.0.0.1:8000/test/</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     json</span>={<span style="color: #800000;">'</span><span style="color: #800000;">k1</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">v1</span><span style="color: #800000;">'</span>, <span style="color: #800000;">'</span><span style="color: #800000;">k2</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">水电费</span><span style="color: #800000;">'</span><span style="color: #000000;">})


</span><span style="color: #0000ff;">def</span><span style="color: #000000;"> param_headers():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> 发送请求头到服务器端</span>
    requests.request(method=<span style="color: #800000;">'</span><span style="color: #800000;">POST</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">http://127.0.0.1:8000/test/</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     json</span>={<span style="color: #800000;">'</span><span style="color: #800000;">k1</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">v1</span><span style="color: #800000;">'</span>, <span style="color: #800000;">'</span><span style="color: #800000;">k2</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">水电费</span><span style="color: #800000;">'</span><span style="color: #000000;">},
                     headers</span>={<span style="color: #800000;">'</span><span style="color: #800000;">Content-Type</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">application/x-www-form-urlencoded</span><span style="color: #800000;">'</span><span style="color: #000000;">}
                     )


</span><span style="color: #0000ff;">def</span><span style="color: #000000;"> param_cookies():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> 发送Cookie到服务器端</span>
    requests.request(method=<span style="color: #800000;">'</span><span style="color: #800000;">POST</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">http://127.0.0.1:8000/test/</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     data</span>={<span style="color: #800000;">'</span><span style="color: #800000;">k1</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">v1</span><span style="color: #800000;">'</span>, <span style="color: #800000;">'</span><span style="color: #800000;">k2</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">v2</span><span style="color: #800000;">'</span><span style="color: #000000;">},
                     cookies</span>={<span style="color: #800000;">'</span><span style="color: #800000;">cook1</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">value1</span><span style="color: #800000;">'</span><span style="color: #000000;">},
                     )
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> 也可以使用CookieJar(字典形式就是在此基础上封装)</span>
    <span style="color: #0000ff;">from</span> http.cookiejar <span style="color: #0000ff;">import</span><span style="color: #000000;"> CookieJar
    </span><span style="color: #0000ff;">from</span> http.cookiejar <span style="color: #0000ff;">import</span><span style="color: #000000;"> Cookie

    obj </span>=<span style="color: #000000;"> CookieJar()
    obj.set_cookie(Cookie(version</span>=0, name=<span style="color: #800000;">'</span><span style="color: #800000;">c1</span><span style="color: #800000;">'</span>, value=<span style="color: #800000;">'</span><span style="color: #800000;">v1</span><span style="color: #800000;">'</span>, port=None, domain=<span style="color: #800000;">''</span>, path=<span style="color: #800000;">'</span><span style="color: #800000;">/</span><span style="color: #800000;">'</span>, secure=False, expires=<span style="color: #000000;">None,
                          discard</span>=True, comment=None, comment_url=None, rest={<span style="color: #800000;">'</span><span style="color: #800000;">HttpOnly</span><span style="color: #800000;">'</span>: None}, rfc2109=<span style="color: #000000;">False,
                          port_specified</span>=False, domain_specified=False, domain_initial_dot=False, path_specified=<span style="color: #000000;">False)
                   )
    requests.request(method</span>=<span style="color: #800000;">'</span><span style="color: #800000;">POST</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">http://127.0.0.1:8000/test/</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                     data</span>={<span style="color: #800000;">'</span><span style="color: #800000;">k1</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">v1</span><span style="color: #800000;">'</span>, <span style="color: #800000;">'</span><span style="color: #800000;">k2</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">v2</span><span style="color: #800000;">'</span><span style="color: #000000;">},
                     cookies</span>=<span style="color: #000000;">obj)


</span><span style="color: #0000ff;">def</span><span style="color: #000000;"> param_files():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> 发送文件</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> file_dict = {</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 'f1': open('readme', 'rb')</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> }</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> files=file_dict)</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> 发送文件,定制文件名</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> file_dict = {</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 'f1': ('test.txt', open('readme', 'rb'))</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> }</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> files=file_dict)</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> 发送文件,定制文件名</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> file_dict = {</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 'f1': ('test.txt', "hahsfaksfa9kasdjflaksdjf")</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> }</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> files=file_dict)</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> 发送文件,定制文件名</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> file_dict = {</span>
    <span style="color: #008000;">#</span><span style="color: #008000;">     'f1': ('test.txt', "hahsfaksfa9kasdjflaksdjf", 'application/text', {'k1': '0'})</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> }</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> requests.request(method='POST',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;">                  url='http://127.0.0.1:8000/test/',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;">                  files=file_dict)</span>

    <span style="color: #0000ff;">pass</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_auth():
    </span><span style="color: #0000ff;">from</span> requests.auth <span style="color: #0000ff;">import</span><span style="color: #000000;"> HTTPBasicAuth, HTTPDigestAuth

    ret </span>= requests.get(<span style="color: #800000;">'</span><span style="color: #800000;">https://api.github.com/user</span><span style="color: #800000;">'</span>, auth=HTTPBasicAuth(<span style="color: #800000;">'</span><span style="color: #800000;">wupeiqi</span><span style="color: #800000;">'</span>, <span style="color: #800000;">'</span><span style="color: #800000;">sdfasdfasdf</span><span style="color: #800000;">'</span><span style="color: #000000;">))
    </span><span style="color: #0000ff;">print</span><span style="color: #000000;">(ret.text)

    </span><span style="color: #008000;">#</span><span style="color: #008000;"> ret = requests.get('http://192.168.1.1',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> auth=HTTPBasicAuth('admin', 'admin'))</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> ret.encoding = 'gbk'</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(ret.text)</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> ret = requests.get('http://httpbin.org/digest-auth/auth/user/pass', auth=HTTPDigestAuth('user', 'pass'))</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(ret)</span>
    <span style="color: #008000;">#
</span>

<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_timeout():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> ret = requests.get('http://google.com/', timeout=1)</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(ret)</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> ret = requests.get('http://google.com/', timeout=(5, 1))</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(ret)</span>
    <span style="color: #0000ff;">pass</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_allow_redirects():
    ret </span>= requests.get(<span style="color: #800000;">'</span><span style="color: #800000;">http://127.0.0.1:8000/test/</span><span style="color: #800000;">'</span>, allow_redirects=<span style="color: #000000;">False)
    </span><span style="color: #0000ff;">print</span><span style="color: #000000;">(ret.text)


</span><span style="color: #0000ff;">def</span><span style="color: #000000;"> param_proxies():
    </span><span style="color: #008000;">#</span><span style="color: #008000;"> proxies = {</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> "http": "61.172.249.96:80",</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> "https": "http://61.185.219.126:3128",</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> }</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}</span>

    <span style="color: #008000;">#</span><span style="color: #008000;"> ret = requests.get("http://www.proxy360.cn/Proxy", proxies=proxies)</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(ret.headers)</span>


    <span style="color: #008000;">#</span><span style="color: #008000;"> from requests.auth import HTTPProxyAuth</span>
    <span style="color: #008000;">#
</span>    <span style="color: #008000;">#</span><span style="color: #008000;"> proxyDict = {</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 'http': '77.75.105.165',</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> 'https': '77.75.105.165'</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> }</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> auth = HTTPProxyAuth('username', 'mypassword')</span>
    <span style="color: #008000;">#
</span>    <span style="color: #008000;">#</span><span style="color: #008000;"> r = requests.get("http://www.google.com", proxies=proxyDict, auth=auth)</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(r.text)</span>

    <span style="color: #0000ff;">pass</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> param_stream():
    ret </span>= requests.get(<span style="color: #800000;">'</span><span style="color: #800000;">http://127.0.0.1:8000/test/</span><span style="color: #800000;">'</span>, stream=<span style="color: #000000;">True)
    </span><span style="color: #0000ff;">print</span><span style="color: #000000;">(ret.content)
    ret.close()

    </span><span style="color: #008000;">#</span><span style="color: #008000;"> from contextlib import closing</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> with closing(requests.get('http://httpbin.org/get', stream=True)) as r:</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> # 在此处理响应。</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> for i in r.iter_content():</span>
    <span style="color: #008000;">#</span><span style="color: #008000;"> print(i)</span>


<span style="color: #0000ff;">def</span><span style="color: #000000;"> requests_session():
    </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> requests

    session </span>=<span style="color: #000000;"> requests.Session()

    </span><span style="color: #008000;">#</span><span style="color: #008000;">## 1、首先登陆任何页面,获取cookie</span>
<span style="color: #000000;">
    i1 </span>= session.get(url=<span style="color: #800000;">"</span><span style="color: #800000;">http://dig.chouti.com/help/service</span><span style="color: #800000;">"</span><span style="color: #000000;">)

    </span><span style="color: #008000;">#</span><span style="color: #008000;">## 2、用户登陆,携带上一次的cookie,后台对cookie中的 gpsd 进行授权</span>
    i2 =<span style="color: #000000;"> session.post(
        url</span>=<span style="color: #800000;">"</span><span style="color: #800000;">http://dig.chouti.com/login</span><span style="color: #800000;">"</span><span style="color: #000000;">,
        data</span>=<span style="color: #000000;">{
            </span><span style="color: #800000;">'</span><span style="color: #800000;">phone</span><span style="color: #800000;">'</span>: <span style="color: #800000;">"</span><span style="color: #800000;">8615131255089</span><span style="color: #800000;">"</span><span style="color: #000000;">,
            </span><span style="color: #800000;">'</span><span style="color: #800000;">password</span><span style="color: #800000;">'</span>: <span style="color: #800000;">"</span><span style="color: #800000;">xxxxxx</span><span style="color: #800000;">"</span><span style="color: #000000;">,
            </span><span style="color: #800000;">'</span><span style="color: #800000;">oneMonth</span><span style="color: #800000;">'</span>: <span style="color: #800000;">""</span><span style="color: #000000;">
        }
    )

    i3 </span>=<span style="color: #000000;"> session.post(
        url</span>=<span style="color: #800000;">"</span><span style="color: #800000;">http://dig.chouti.com/link/vote?linksId=8589623</span><span style="color: #800000;">"</span><span style="color: #000000;">,
    )
    </span><span style="color: #0000ff;">print</span>(i3.text)</pre>
</div>
<span class="cnblogs_code_collapse">参数示例</span></div>
<p>&nbsp;</p>
<p><em><span style="color: #888888;">官方文档:http://cn.python-requests.org/zh_CN/latest/user/quickstart.html#id4</span></em></p>
<h3>BeautifulSoup</h3>
<p>BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单。</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_477748" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div><div class="line number17 index16 alt2">17</div><div class="line number18 index17 alt1">18</div><div class="line number19 index18 alt2">19</div><div class="line number20 index19 alt1">20</div><div class="line number21 index20 alt2">21</div><div class="line number22 index21 alt1">22</div><div class="line number23 index22 alt2">23</div><div class="line number24 index23 alt1">24</div><div class="line number25 index24 alt2">25</div><div class="line number26 index25 alt1">26</div><div class="line number27 index26 alt2">27</div><div class="line number28 index27 alt1">28</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">from</code> <code class="python plain">bs4 </code><code class="python keyword">import</code> <code class="python plain">BeautifulSoup</code></div><div class="line number2 index1 alt1">&nbsp;</div><div class="line number3 index2 alt2"><code class="python plain">html_doc </code><code class="python keyword">=</code> <code class="python comments">"""</code></div><div class="line number4 index3 alt1"><code class="python comments">&lt;html&gt;&lt;head&gt;&lt;title&gt;The Dormouse's story&lt;/title&gt;&lt;/head&gt;</code></div><div class="line number5 index4 alt2"><code class="python comments">&lt;body&gt;</code></div><div class="line number6 index5 alt1"><code class="python comments">asdf</code></div><div class="line number7 index6 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;div class="title"&gt;</code></div><div class="line number8 index7 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;b&gt;The Dormouse's story总共&lt;/b&gt;</code></div><div class="line number9 index8 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;h1&gt;f&lt;/h1&gt;</code></div><div class="line number10 index9 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;/div&gt;</code></div><div class="line number11 index10 alt2"><code class="python comments">&lt;div class="story"&gt;Once upon a time there were three little sisters; and their names were</code></div><div class="line number12 index11 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;a&nbsp; class="sister0" id="link1"&gt;Els&lt;span&gt;f&lt;/span&gt;ie&lt;/a&gt;,</code></div><div class="line number13 index12 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;a href="http://example.com/lacie" class="sister" id="link2"&gt;Lacie&lt;/a&gt; and</code></div><div class="line number14 index13 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">&lt;a href="http://example.com/tillie" class="sister" id="link3"&gt;Tillie&lt;/a&gt;;</code></div><div class="line number15 index14 alt2"><code class="python comments">and they lived at the bottom of a well.&lt;/div&gt;</code></div><div class="line number16 index15 alt1"><code class="python comments">ad&lt;br/&gt;sf</code></div><div class="line number17 index16 alt2"><code class="python comments">&lt;p class="story"&gt;...&lt;/p&gt;</code></div><div class="line number18 index17 alt1"><code class="python comments">&lt;/body&gt;</code></div><div class="line number19 index18 alt2"><code class="python comments">&lt;/html&gt;</code></div><div class="line number20 index19 alt1"><code class="python comments">"""</code></div><div class="line number21 index20 alt2">&nbsp;</div><div class="line number22 index21 alt1"><code class="python plain">soup </code><code class="python keyword">=</code> <code class="python plain">BeautifulSoup(html_doc, features</code><code class="python keyword">=</code><code class="python string">"lxml"</code><code class="python plain">)</code></div><div class="line number23 index22 alt2"><code class="python comments"># 找到第一个a标签</code></div><div class="line number24 index23 alt1"><code class="python plain">tag1 </code><code class="python keyword">=</code> <code class="python plain">soup.find(name</code><code class="python keyword">=</code><code class="python string">'a'</code><code class="python plain">)</code></div><div class="line number25 index24 alt2"><code class="python comments"># 找到所有的a标签</code></div><div class="line number26 index25 alt1"><code class="python plain">tag2 </code><code class="python keyword">=</code> <code class="python plain">soup.find_all(name</code><code class="python keyword">=</code><code class="python string">'a'</code><code class="python plain">)</code></div><div class="line number27 index26 alt2"><code class="python comments"># 找到id=link2的标签</code></div><div class="line number28 index27 alt1"><code class="python plain">tag3 </code><code class="python keyword">=</code> <code class="python plain">soup.select(</code><code class="python string">'#link2'</code><code class="python plain">)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p><strong>安装:</strong></p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_301666" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python plain">pip3 install beautifulsoup4</code></div></div></td></tr></tbody></table></div></div>
</div>
<p><strong>使用示例:</strong></p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_889841" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python keyword">from</code> <code class="python plain">bs4 </code><code class="python keyword">import</code> <code class="python plain">BeautifulSoup</code></div><div class="line number2 index1 alt1">&nbsp;</div><div class="line number3 index2 alt2"><code class="python plain">html_doc </code><code class="python keyword">=</code> <code class="python comments">"""</code></div><div class="line number4 index3 alt1"><code class="python comments">&lt;html&gt;&lt;head&gt;&lt;title&gt;The Dormouse's story&lt;/title&gt;&lt;/head&gt;</code></div><div class="line number5 index4 alt2"><code class="python comments">&lt;body&gt;</code></div><div class="line number6 index5 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python comments">...</code></div><div class="line number7 index6 alt2"><code class="python comments">&lt;/body&gt;</code></div><div class="line number8 index7 alt1"><code class="python comments">&lt;/html&gt;</code></div><div class="line number9 index8 alt2"><code class="python comments">"""</code></div><div class="line number10 index9 alt1">&nbsp;</div><div class="line number11 index10 alt2"><code class="python plain">soup </code><code class="python keyword">=</code> <code class="python plain">BeautifulSoup(html_doc, features</code><code class="python keyword">=</code><code class="python string">"lxml"</code><code class="python plain">)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>1. name,标签名称</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_502345" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># name = tag.name # 获取</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(name)</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag.name = 'span' # 设置</code></div><div class="line number5 index4 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>2. attr,标签属性</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_979377" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># attrs = tag.attrs&nbsp;&nbsp;&nbsp; # 获取</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(attrs)</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag.attrs = {'ik':123} # 设置</code></div><div class="line number5 index4 alt2"><code class="python comments"># tag.attrs['id'] = 'iiiii' # 设置</code></div><div class="line number6 index5 alt1"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>3. children,所有子标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_246382" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># body = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = body.children</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>4. children,所有子子孙孙标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_844885" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># body = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = body.descendants</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>5. clear,将标签的所有子标签全部清空(保留标签名)</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_841252" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># tag.clear()</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>6. decompose,递归的删除所有的标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_90984" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># body = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># body.decompose()</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>7. extract,递归的删除所有的标签,并获取删除的标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_696052" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># body = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = body.extract()</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>8.&nbsp;decode,转换为字符串(含当前标签);decode_contents(不含当前标签)</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_990440" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># body = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = body.decode()</code></div><div class="line number3 index2 alt2"><code class="python comments"># v = body.decode_contents()</code></div><div class="line number4 index3 alt1"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>9.&nbsp;encode,转换为字节(含当前标签);encode_contents(不含当前标签)</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_655096" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># body = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = body.encode()</code></div><div class="line number3 index2 alt2"><code class="python comments"># v = body.encode_contents()</code></div><div class="line number4 index3 alt1"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>10.&nbsp;find,获取匹配的第一个标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_278495" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># print(tag)</code></div><div class="line number3 index2 alt2"><code class="python comments"># tag = soup.find(name='a', attrs={'class': 'sister'}, recursive=True, text='Lacie')</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag = soup.find(name='a', class_='sister', recursive=True, text='Lacie')</code></div><div class="line number5 index4 alt2"><code class="python comments"># print(tag)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>11. find_all,获取匹配的所有标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_256480" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div><div class="line number17 index16 alt2">17</div><div class="line number18 index17 alt1">18</div><div class="line number19 index18 alt2">19</div><div class="line number20 index19 alt1">20</div><div class="line number21 index20 alt2">21</div><div class="line number22 index21 alt1">22</div><div class="line number23 index22 alt2">23</div><div class="line number24 index23 alt1">24</div><div class="line number25 index24 alt2">25</div><div class="line number26 index25 alt1">26</div><div class="line number27 index26 alt2">27</div><div class="line number28 index27 alt1">28</div><div class="line number29 index28 alt2">29</div><div class="line number30 index29 alt1">30</div><div class="line number31 index30 alt2">31</div><div class="line number32 index31 alt1">32</div><div class="line number33 index32 alt2">33</div><div class="line number34 index33 alt1">34</div><div class="line number35 index34 alt2">35</div><div class="line number36 index35 alt1">36</div><div class="line number37 index36 alt2">37</div><div class="line number38 index37 alt1">38</div><div class="line number39 index38 alt2">39</div><div class="line number40 index39 alt1">40</div><div class="line number41 index40 alt2">41</div><div class="line number42 index41 alt1">42</div><div class="line number43 index42 alt2">43</div><div class="line number44 index43 alt1">44</div><div class="line number45 index44 alt2">45</div><div class="line number46 index45 alt1">46</div><div class="line number47 index46 alt2">47</div><div class="line number48 index47 alt1">48</div><div class="line number49 index48 alt2">49</div><div class="line number50 index49 alt1">50</div><div class="line number51 index50 alt2">51</div><div class="line number52 index51 alt1">52</div><div class="line number53 index52 alt2">53</div><div class="line number54 index53 alt1">54</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tags = soup.find_all('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># print(tags)</code></div><div class="line number3 index2 alt2">&nbsp;</div><div class="line number4 index3 alt1"><code class="python comments"># tags = soup.find_all('a',limit=1)</code></div><div class="line number5 index4 alt2"><code class="python comments"># print(tags)</code></div><div class="line number6 index5 alt1">&nbsp;</div><div class="line number7 index6 alt2"><code class="python comments"># tags = soup.find_all(name='a', attrs={'class': 'sister'}, recursive=True, text='Lacie')</code></div><div class="line number8 index7 alt1"><code class="python comments"># # tags = soup.find(name='a', class_='sister', recursive=True, text='Lacie')</code></div><div class="line number9 index8 alt2"><code class="python comments"># print(tags)</code></div><div class="line number10 index9 alt1">&nbsp;</div><div class="line number11 index10 alt2">&nbsp;</div><div class="line number12 index11 alt1"><code class="python comments"># ####### 列表 #######</code></div><div class="line number13 index12 alt2"><code class="python comments"># v = soup.find_all(name=['a','div'])</code></div><div class="line number14 index13 alt1"><code class="python comments"># print(v)</code></div><div class="line number15 index14 alt2">&nbsp;</div><div class="line number16 index15 alt1"><code class="python comments"># v = soup.find_all(class_=['sister0', 'sister'])</code></div><div class="line number17 index16 alt2"><code class="python comments"># print(v)</code></div><div class="line number18 index17 alt1">&nbsp;</div><div class="line number19 index18 alt2"><code class="python comments"># v = soup.find_all(text=['Tillie'])</code></div><div class="line number20 index19 alt1"><code class="python comments"># print(v, type(v[0]))</code></div><div class="line number21 index20 alt2">&nbsp;</div><div class="line number22 index21 alt1">&nbsp;</div><div class="line number23 index22 alt2"><code class="python comments"># v = soup.find_all(id=['link1','link2'])</code></div><div class="line number24 index23 alt1"><code class="python comments"># print(v)</code></div><div class="line number25 index24 alt2">&nbsp;</div><div class="line number26 index25 alt1"><code class="python comments"># v = soup.find_all(href=['link1','link2'])</code></div><div class="line number27 index26 alt2"><code class="python comments"># print(v)</code></div><div class="line number28 index27 alt1">&nbsp;</div><div class="line number29 index28 alt2"><code class="python comments"># ####### 正则 #######</code></div><div class="line number30 index29 alt1"><code class="python keyword">import</code> <code class="python plain">re</code></div><div class="line number31 index30 alt2"><code class="python comments"># rep = re.compile('p')</code></div><div class="line number32 index31 alt1"><code class="python comments"># rep = re.compile('^p')</code></div><div class="line number33 index32 alt2"><code class="python comments"># v = soup.find_all(name=rep)</code></div><div class="line number34 index33 alt1"><code class="python comments"># print(v)</code></div><div class="line number35 index34 alt2">&nbsp;</div><div class="line number36 index35 alt1"><code class="python comments"># rep = re.compile('sister.*')</code></div><div class="line number37 index36 alt2"><code class="python comments"># v = soup.find_all(class_=rep)</code></div><div class="line number38 index37 alt1"><code class="python comments"># print(v)</code></div><div class="line number39 index38 alt2">&nbsp;</div><div class="line number40 index39 alt1"><code class="python comments"># rep = re.compile('http://www.oldboy.com/static/.*')</code></div><div class="line number41 index40 alt2"><code class="python comments"># v = soup.find_all(href=rep)</code></div><div class="line number42 index41 alt1"><code class="python comments"># print(v)</code></div><div class="line number43 index42 alt2">&nbsp;</div><div class="line number44 index43 alt1"><code class="python comments"># ####### 方法筛选 #######</code></div><div class="line number45 index44 alt2"><code class="python comments"># def func(tag):</code></div><div class="line number46 index45 alt1"><code class="python comments"># return tag.has_attr('class') and tag.has_attr('id')</code></div><div class="line number47 index46 alt2"><code class="python comments"># v = soup.find_all(name=func)</code></div><div class="line number48 index47 alt1"><code class="python comments"># print(v)</code></div><div class="line number49 index48 alt2">&nbsp;</div><div class="line number50 index49 alt1">&nbsp;</div><div class="line number51 index50 alt2"><code class="python comments"># ## get,获取标签属性</code></div><div class="line number52 index51 alt1"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number53 index52 alt2"><code class="python comments"># v = tag.get('id')</code></div><div class="line number54 index53 alt1"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>12.&nbsp;has_attr,检查标签是否具有该属性</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_851412" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = tag.has_attr('id')</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>13.&nbsp;get_text,获取标签内部文本内容</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_813674" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = tag.get_text('id')</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>14.&nbsp;index,检查标签在某标签中的索引位置</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_617704" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = tag.index(tag.find('div'))</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(v)</code></div><div class="line number4 index3 alt1">&nbsp;</div><div class="line number5 index4 alt2"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number6 index5 alt1"><code class="python comments"># for i,v in enumerate(tag):</code></div><div class="line number7 index6 alt2"><code class="python comments"># print(i,v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>15.&nbsp;is_empty_element,是否是空标签(是否可以是空)或者自闭合标签,</p>
<p>&nbsp; &nbsp; &nbsp;判断是否是如下标签:'br' , 'hr', 'input', 'img', 'meta','spacer', 'link', 'frame', 'base'</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_55522" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('br')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = tag.is_empty_element</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>16. 当前的关联标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_641535" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># soup.next</code></div><div class="line number2 index1 alt1"><code class="python comments"># soup.next_element</code></div><div class="line number3 index2 alt2"><code class="python comments"># soup.next_elements</code></div><div class="line number4 index3 alt1"><code class="python comments"># soup.next_sibling</code></div><div class="line number5 index4 alt2"><code class="python comments"># soup.next_siblings</code></div><div class="line number6 index5 alt1">&nbsp;</div><div class="line number7 index6 alt2"><code class="python comments">#</code></div><div class="line number8 index7 alt1"><code class="python comments"># tag.previous</code></div><div class="line number9 index8 alt2"><code class="python comments"># tag.previous_element</code></div><div class="line number10 index9 alt1"><code class="python comments"># tag.previous_elements</code></div><div class="line number11 index10 alt2"><code class="python comments"># tag.previous_sibling</code></div><div class="line number12 index11 alt1"><code class="python comments"># tag.previous_siblings</code></div><div class="line number13 index12 alt2">&nbsp;</div><div class="line number14 index13 alt1"><code class="python comments">#</code></div><div class="line number15 index14 alt2"><code class="python comments"># tag.parent</code></div><div class="line number16 index15 alt1"><code class="python comments"># tag.parents</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>17. 查找某标签的关联标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_413372" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag.find_next(...)</code></div><div class="line number2 index1 alt1"><code class="python comments"># tag.find_all_next(...)</code></div><div class="line number3 index2 alt2"><code class="python comments"># tag.find_next_sibling(...)</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag.find_next_siblings(...)</code></div><div class="line number5 index4 alt2">&nbsp;</div><div class="line number6 index5 alt1"><code class="python comments"># tag.find_previous(...)</code></div><div class="line number7 index6 alt2"><code class="python comments"># tag.find_all_previous(...)</code></div><div class="line number8 index7 alt1"><code class="python comments"># tag.find_previous_sibling(...)</code></div><div class="line number9 index8 alt2"><code class="python comments"># tag.find_previous_siblings(...)</code></div><div class="line number10 index9 alt1">&nbsp;</div><div class="line number11 index10 alt2"><code class="python comments"># tag.find_parent(...)</code></div><div class="line number12 index11 alt1"><code class="python comments"># tag.find_parents(...)</code></div><div class="line number13 index12 alt2">&nbsp;</div><div class="line number14 index13 alt1"><code class="python comments"># 参数同find_all</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>18.&nbsp;select,select_one, CSS选择器</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_739922" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div><div class="line number14 index13 alt1">14</div><div class="line number15 index14 alt2">15</div><div class="line number16 index15 alt1">16</div><div class="line number17 index16 alt2">17</div><div class="line number18 index17 alt1">18</div><div class="line number19 index18 alt2">19</div><div class="line number20 index19 alt1">20</div><div class="line number21 index20 alt2">21</div><div class="line number22 index21 alt1">22</div><div class="line number23 index22 alt2">23</div><div class="line number24 index23 alt1">24</div><div class="line number25 index24 alt2">25</div><div class="line number26 index25 alt1">26</div><div class="line number27 index26 alt2">27</div><div class="line number28 index27 alt1">28</div><div class="line number29 index28 alt2">29</div><div class="line number30 index29 alt1">30</div><div class="line number31 index30 alt2">31</div><div class="line number32 index31 alt1">32</div><div class="line number33 index32 alt2">33</div><div class="line number34 index33 alt1">34</div><div class="line number35 index34 alt2">35</div><div class="line number36 index35 alt1">36</div><div class="line number37 index36 alt2">37</div><div class="line number38 index37 alt1">38</div><div class="line number39 index38 alt2">39</div><div class="line number40 index39 alt1">40</div><div class="line number41 index40 alt2">41</div><div class="line number42 index41 alt1">42</div><div class="line number43 index42 alt2">43</div><div class="line number44 index43 alt1">44</div><div class="line number45 index44 alt2">45</div><div class="line number46 index45 alt1">46</div><div class="line number47 index46 alt2">47</div><div class="line number48 index47 alt1">48</div><div class="line number49 index48 alt2">49</div><div class="line number50 index49 alt1">50</div><div class="line number51 index50 alt2">51</div><div class="line number52 index51 alt1">52</div><div class="line number53 index52 alt2">53</div><div class="line number54 index53 alt1">54</div><div class="line number55 index54 alt2">55</div><div class="line number56 index55 alt1">56</div><div class="line number57 index56 alt2">57</div><div class="line number58 index57 alt1">58</div><div class="line number59 index58 alt2">59</div><div class="line number60 index59 alt1">60</div><div class="line number61 index60 alt2">61</div><div class="line number62 index61 alt1">62</div><div class="line number63 index62 alt2">63</div><div class="line number64 index63 alt1">64</div><div class="line number65 index64 alt2">65</div><div class="line number66 index65 alt1">66</div><div class="line number67 index66 alt2">67</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python plain">soup.select(</code><code class="python string">"title"</code><code class="python plain">)</code></div><div class="line number2 index1 alt1">&nbsp;</div><div class="line number3 index2 alt2"><code class="python plain">soup.select(</code><code class="python string">"p nth-of-type(3)"</code><code class="python plain">)</code></div><div class="line number4 index3 alt1">&nbsp;</div><div class="line number5 index4 alt2"><code class="python plain">soup.select(</code><code class="python string">"body a"</code><code class="python plain">)</code></div><div class="line number6 index5 alt1">&nbsp;</div><div class="line number7 index6 alt2"><code class="python plain">soup.select(</code><code class="python string">"html head title"</code><code class="python plain">)</code></div><div class="line number8 index7 alt1">&nbsp;</div><div class="line number9 index8 alt2"><code class="python plain">tag </code><code class="python keyword">=</code> <code class="python plain">soup.select(</code><code class="python string">"span,a"</code><code class="python plain">)</code></div><div class="line number10 index9 alt1">&nbsp;</div><div class="line number11 index10 alt2"><code class="python plain">soup.select(</code><code class="python string">"head &gt; title"</code><code class="python plain">)</code></div><div class="line number12 index11 alt1">&nbsp;</div><div class="line number13 index12 alt2"><code class="python plain">soup.select(</code><code class="python string">"p &gt; a"</code><code class="python plain">)</code></div><div class="line number14 index13 alt1">&nbsp;</div><div class="line number15 index14 alt2"><code class="python plain">soup.select(</code><code class="python string">"p &gt; a:nth-of-type(2)"</code><code class="python plain">)</code></div><div class="line number16 index15 alt1">&nbsp;</div><div class="line number17 index16 alt2"><code class="python plain">soup.select(</code><code class="python string">"p &gt; #link1"</code><code class="python plain">)</code></div><div class="line number18 index17 alt1">&nbsp;</div><div class="line number19 index18 alt2"><code class="python plain">soup.select(</code><code class="python string">"body &gt; a"</code><code class="python plain">)</code></div><div class="line number20 index19 alt1">&nbsp;</div><div class="line number21 index20 alt2"><code class="python plain">soup.select(</code><code class="python string">"#link1 ~ .sister"</code><code class="python plain">)</code></div><div class="line number22 index21 alt1">&nbsp;</div><div class="line number23 index22 alt2"><code class="python plain">soup.select(</code><code class="python string">"#link1 + .sister"</code><code class="python plain">)</code></div><div class="line number24 index23 alt1">&nbsp;</div><div class="line number25 index24 alt2"><code class="python plain">soup.select(</code><code class="python string">".sister"</code><code class="python plain">)</code></div><div class="line number26 index25 alt1">&nbsp;</div><div class="line number27 index26 alt2"><code class="python plain">soup.select(</code><code class="python string">"[class~=sister]"</code><code class="python plain">)</code></div><div class="line number28 index27 alt1">&nbsp;</div><div class="line number29 index28 alt2"><code class="python plain">soup.select(</code><code class="python string">"#link1"</code><code class="python plain">)</code></div><div class="line number30 index29 alt1">&nbsp;</div><div class="line number31 index30 alt2"><code class="python plain">soup.select(</code><code class="python string">"a#link2"</code><code class="python plain">)</code></div><div class="line number32 index31 alt1">&nbsp;</div><div class="line number33 index32 alt2"><code class="python plain">soup.select(</code><code class="python string">'a[href]'</code><code class="python plain">)</code></div><div class="line number34 index33 alt1">&nbsp;</div><div class="line number35 index34 alt2"><code class="python plain">soup.select(</code><code class="python string">'a[href="http://example.com/elsie"]'</code><code class="python plain">)</code></div><div class="line number36 index35 alt1">&nbsp;</div><div class="line number37 index36 alt2"><code class="python plain">soup.select(</code><code class="python string">'a[href^="http://example.com/"]'</code><code class="python plain">)</code></div><div class="line number38 index37 alt1">&nbsp;</div><div class="line number39 index38 alt2"><code class="python plain">soup.select(</code><code class="python string">'a[href$="tillie"]'</code><code class="python plain">)</code></div><div class="line number40 index39 alt1">&nbsp;</div><div class="line number41 index40 alt2"><code class="python plain">soup.select(</code><code class="python string">'a[href*=".com/el"]'</code><code class="python plain">)</code></div><div class="line number42 index41 alt1">&nbsp;</div><div class="line number43 index42 alt2">&nbsp;</div><div class="line number44 index43 alt1"><code class="python keyword">from</code> <code class="python plain">bs4.element </code><code class="python keyword">import</code> <code class="python plain">Tag</code></div><div class="line number45 index44 alt2">&nbsp;</div><div class="line number46 index45 alt1"><code class="python keyword">def</code> <code class="python plain">default_candidate_generator(tag):</code></div><div class="line number47 index46 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">for</code> <code class="python plain">child </code><code class="python keyword">in</code> <code class="python plain">tag.descendants:</code></div><div class="line number48 index47 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">if</code> <code class="python keyword">not</code> <code class="python functions">isinstance</code><code class="python plain">(child, Tag):</code></div><div class="line number49 index48 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">continue</code></div><div class="line number50 index49 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">if</code> <code class="python keyword">not</code> <code class="python plain">child.has_attr(</code><code class="python string">'href'</code><code class="python plain">):</code></div><div class="line number51 index50 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">continue</code></div><div class="line number52 index51 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">yield</code> <code class="python plain">child</code></div><div class="line number53 index52 alt2">&nbsp;</div><div class="line number54 index53 alt1"><code class="python plain">tags </code><code class="python keyword">=</code> <code class="python plain">soup.find(</code><code class="python string">'body'</code><code class="python plain">).select(</code><code class="python string">"a"</code><code class="python plain">, _candidate_generator</code><code class="python keyword">=</code><code class="python plain">default_candidate_generator)</code></div><div class="line number55 index54 alt2"><code class="python functions">print</code><code class="python plain">(</code><code class="python functions">type</code><code class="python plain">(tags), tags)</code></div><div class="line number56 index55 alt1">&nbsp;</div><div class="line number57 index56 alt2"><code class="python keyword">from</code> <code class="python plain">bs4.element </code><code class="python keyword">import</code> <code class="python plain">Tag</code></div><div class="line number58 index57 alt1"><code class="python keyword">def</code> <code class="python plain">default_candidate_generator(tag):</code></div><div class="line number59 index58 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">for</code> <code class="python plain">child </code><code class="python keyword">in</code> <code class="python plain">tag.descendants:</code></div><div class="line number60 index59 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">if</code> <code class="python keyword">not</code> <code class="python functions">isinstance</code><code class="python plain">(child, Tag):</code></div><div class="line number61 index60 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">continue</code></div><div class="line number62 index61 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">if</code> <code class="python keyword">not</code> <code class="python plain">child.has_attr(</code><code class="python string">'href'</code><code class="python plain">):</code></div><div class="line number63 index62 alt2"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">continue</code></div><div class="line number64 index63 alt1"><code class="python spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="python keyword">yield</code> <code class="python plain">child</code></div><div class="line number65 index64 alt2">&nbsp;</div><div class="line number66 index65 alt1"><code class="python plain">tags </code><code class="python keyword">=</code> <code class="python plain">soup.find(</code><code class="python string">'body'</code><code class="python plain">).select(</code><code class="python string">"a"</code><code class="python plain">, _candidate_generator</code><code class="python keyword">=</code><code class="python plain">default_candidate_generator, limit</code><code class="python keyword">=</code><code class="python value">1</code><code class="python plain">)</code></div><div class="line number67 index66 alt2"><code class="python functions">print</code><code class="python plain">(</code><code class="python functions">type</code><code class="python plain">(tags), tags)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>19.&nbsp;标签的内容</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_995719" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div><div class="line number12 index11 alt1">12</div><div class="line number13 index12 alt2">13</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('span')</code></div><div class="line number2 index1 alt1"><code class="python comments"># print(tag.string)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 获取</code></div><div class="line number3 index2 alt2"><code class="python comments"># tag.string = 'new content' # 设置</code></div><div class="line number4 index3 alt1"><code class="python comments"># print(soup)</code></div><div class="line number5 index4 alt2">&nbsp;</div><div class="line number6 index5 alt1"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number7 index6 alt2"><code class="python comments"># print(tag.string)</code></div><div class="line number8 index7 alt1"><code class="python comments"># tag.string = 'xxx'</code></div><div class="line number9 index8 alt2"><code class="python comments"># print(soup)</code></div><div class="line number10 index9 alt1">&nbsp;</div><div class="line number11 index10 alt2"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number12 index11 alt1"><code class="python comments"># v = tag.stripped_strings&nbsp; # 递归内部获取所有标签的文本</code></div><div class="line number13 index12 alt2"><code class="python comments"># print(v)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>20.append在当前标签内部追加一个标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_58782" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number2 index1 alt1"><code class="python comments"># tag.append(soup.find('a'))</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(soup)</code></div><div class="line number4 index3 alt1"><code class="python comments">#</code></div><div class="line number5 index4 alt2"><code class="python comments"># from bs4.element import Tag</code></div><div class="line number6 index5 alt1"><code class="python comments"># obj = Tag(name='i',attrs={'id': 'it'})</code></div><div class="line number7 index6 alt2"><code class="python comments"># obj.string = '我是一个新来的'</code></div><div class="line number8 index7 alt1"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number9 index8 alt2"><code class="python comments"># tag.append(obj)</code></div><div class="line number10 index9 alt1"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>21.insert在当前标签内部指定位置插入一个标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_993688" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># from bs4.element import Tag</code></div><div class="line number2 index1 alt1"><code class="python comments"># obj = Tag(name='i', attrs={'id': 'it'})</code></div><div class="line number3 index2 alt2"><code class="python comments"># obj.string = '我是一个新来的'</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number5 index4 alt2"><code class="python comments"># tag.insert(2, obj)</code></div><div class="line number6 index5 alt1"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>22.&nbsp;insert_after,insert_before 在当前标签后面或前面插入</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_431986" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># from bs4.element import Tag</code></div><div class="line number2 index1 alt1"><code class="python comments"># obj = Tag(name='i', attrs={'id': 'it'})</code></div><div class="line number3 index2 alt2"><code class="python comments"># obj.string = '我是一个新来的'</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag = soup.find('body')</code></div><div class="line number5 index4 alt2"><code class="python comments"># # tag.insert_before(obj)</code></div><div class="line number6 index5 alt1"><code class="python comments"># tag.insert_after(obj)</code></div><div class="line number7 index6 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>23.&nbsp;replace_with 在当前标签替换为指定标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_634116" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># from bs4.element import Tag</code></div><div class="line number2 index1 alt1"><code class="python comments"># obj = Tag(name='i', attrs={'id': 'it'})</code></div><div class="line number3 index2 alt2"><code class="python comments"># obj.string = '我是一个新来的'</code></div><div class="line number4 index3 alt1"><code class="python comments"># tag = soup.find('div')</code></div><div class="line number5 index4 alt2"><code class="python comments"># tag.replace_with(obj)</code></div><div class="line number6 index5 alt1"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>24.&nbsp;创建标签之间的关系</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_462019" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('div')</code></div><div class="line number2 index1 alt1"><code class="python comments"># a = soup.find('a')</code></div><div class="line number3 index2 alt2"><code class="python comments"># tag.setup(previous_sibling=a)</code></div><div class="line number4 index3 alt1"><code class="python comments"># print(tag.previous_sibling)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>25.&nbsp;wrap,将指定标签把当前标签包裹起来</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_108854" class="syntaxhighlighter collapsed  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_expandSource expandSource">+ View Code</a></span><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div><div class="line number4 index3 alt1">4</div><div class="line number5 index4 alt2">5</div><div class="line number6 index5 alt1">6</div><div class="line number7 index6 alt2">7</div><div class="line number8 index7 alt1">8</div><div class="line number9 index8 alt2">9</div><div class="line number10 index9 alt1">10</div><div class="line number11 index10 alt2">11</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># from bs4.element import Tag</code></div><div class="line number2 index1 alt1"><code class="python comments"># obj1 = Tag(name='div', attrs={'id': 'it'})</code></div><div class="line number3 index2 alt2"><code class="python comments"># obj1.string = '我是一个新来的'</code></div><div class="line number4 index3 alt1"><code class="python comments">#</code></div><div class="line number5 index4 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number6 index5 alt1"><code class="python comments"># v = tag.wrap(obj1)</code></div><div class="line number7 index6 alt2"><code class="python comments"># print(soup)</code></div><div class="line number8 index7 alt1">&nbsp;</div><div class="line number9 index8 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number10 index9 alt1"><code class="python comments"># v = tag.wrap(soup.find('p'))</code></div><div class="line number11 index10 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p>26.&nbsp;unwrap,去掉当前标签,将保留其包裹的标签</p>
<div class="cnblogs_Highlighter sh-gutter">
<div><div id="highlighter_316193" class="syntaxhighlighter  python"><div class="toolbar"><span><a href="#" class="toolbar_item command_help help">?</a></span></div><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td class="gutter"><div class="line number1 index0 alt2">1</div><div class="line number2 index1 alt1">2</div><div class="line number3 index2 alt2">3</div></td><td class="code"><div class="container"><div class="line number1 index0 alt2"><code class="python comments"># tag = soup.find('a')</code></div><div class="line number2 index1 alt1"><code class="python comments"># v = tag.unwrap()</code></div><div class="line number3 index2 alt2"><code class="python comments"># print(soup)</code></div></div></td></tr></tbody></table></div></div>
</div>
<p><span style="color: #888888;"><em>更多参数官方:http://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/</em></span></p>
<h3>一大波"自动登陆"示例</h3>
<div class="cnblogs_code" οnclick="cnblogs_code_show('8ab53e71-84fd-4dd3-be2c-3672e973d723')"><img id="code_img_closed_8ab53e71-84fd-4dd3-be2c-3672e973d723" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_8ab53e71-84fd-4dd3-be2c-3672e973d723" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('8ab53e71-84fd-4dd3-be2c-3672e973d723',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_8ab53e71-84fd-4dd3-be2c-3672e973d723" class="cnblogs_code_hide">
<pre><span style="color: #008000;">#</span><span style="color: #008000;">!/usr/bin/env python</span><span style="color: #008000;">
#</span><span style="color: #008000;"> -*- coding:utf-8 -*-</span>
<span style="color: #0000ff;">import</span><span style="color: #000000;"> requests


</span><span style="color: #008000;">#</span><span style="color: #008000;"> ############## 方式一 ##############</span>
<span style="color: #800000;">"""</span><span style="color: #800000;">
# ## 1、首先登陆任何页面,获取cookie
i1 = requests.get(url="http://dig.chouti.com/help/service")
i1_cookies = i1.cookies.get_dict()

# ## 2、用户登陆,携带上一次的cookie,后台对cookie中的 gpsd 进行授权
i2 = requests.post(
    url="http://dig.chouti.com/login",
    data={
        'phone': "8615131255089",
        'password': "xxooxxoo",
        'oneMonth': ""
    },
    cookies=i1_cookies
)

# ## 3、点赞(只需要携带已经被授权的gpsd即可)
gpsd = i1_cookies['gpsd']
i3 = requests.post(
    url="http://dig.chouti.com/link/vote?linksId=8589523",
    cookies={'gpsd': gpsd}
)

print(i3.text)
</span><span style="color: #800000;">"""</span>


<span style="color: #008000;">#</span><span style="color: #008000;"> ############## 方式二 ##############</span>
<span style="color: #800000;">"""</span><span style="color: #800000;">
import requests

session = requests.Session()
i1 = session.get(url="http://dig.chouti.com/help/service")
i2 = session.post(
    url="http://dig.chouti.com/login",
    data={
        'phone': "8615131255089",
        'password': "xxooxxoo",
        'oneMonth': ""
    }
)
i3 = session.post(
    url="http://dig.chouti.com/link/vote?linksId=8589523"
)
print(i3.text)

</span><span style="color: #800000;">"""</span></pre>
</div>
<span class="cnblogs_code_collapse">抽屉新热榜</span></div>
<div class="cnblogs_code" οnclick="cnblogs_code_show('3c364d55-d79c-46a7-8fb2-46e1228c3f45')"><img id="code_img_closed_3c364d55-d79c-46a7-8fb2-46e1228c3f45" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_3c364d55-d79c-46a7-8fb2-46e1228c3f45" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('3c364d55-d79c-46a7-8fb2-46e1228c3f45',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_3c364d55-d79c-46a7-8fb2-46e1228c3f45" class="cnblogs_code_hide">
<pre><span style="color: #008000;">#</span><span style="color: #008000;">!/usr/bin/env python</span><span style="color: #008000;">
#</span><span style="color: #008000;"> -*- coding:utf-8 -*-</span>

<span style="color: #0000ff;">import</span><span style="color: #000000;"> requests
</span><span style="color: #0000ff;">from</span> bs4 <span style="color: #0000ff;">import</span><span style="color: #000000;"> BeautifulSoup

</span><span style="color: #008000;">#</span><span style="color: #008000;"> ############## 方式一 ##############</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> # 1. 访问登陆页面,获取 authenticity_token</span><span style="color: #008000;">
#</span><span style="color: #008000;"> i1 = requests.get('https://github.com/login')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> soup1 = BeautifulSoup(i1.text, features='lxml')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> tag = soup1.find(name='input', attrs={'name': 'authenticity_token'})</span><span style="color: #008000;">
#</span><span style="color: #008000;"> authenticity_token = tag.get('value')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> c1 = i1.cookies.get_dict()</span><span style="color: #008000;">
#</span><span style="color: #008000;"> i1.close()</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> # 1. 携带authenticity_token和用户名密码等信息,发送用户验证</span><span style="color: #008000;">
#</span><span style="color: #008000;"> form_data = {</span><span style="color: #008000;">
#</span><span style="color: #008000;"> "authenticity_token": authenticity_token,</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "utf8": "",</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "commit": "Sign in",</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "login": "wupeiqi@live.com",</span><span style="color: #008000;">
#</span><span style="color: #008000;">     'password': 'xxoo'</span><span style="color: #008000;">
#</span><span style="color: #008000;"> }</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> i2 = requests.post('https://github.com/session', data=form_data, cookies=c1)</span><span style="color: #008000;">
#</span><span style="color: #008000;"> c2 = i2.cookies.get_dict()</span><span style="color: #008000;">
#</span><span style="color: #008000;"> c1.update(c2)</span><span style="color: #008000;">
#</span><span style="color: #008000;"> i3 = requests.get('https://github.com/settings/repositories', cookies=c1)</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> soup3 = BeautifulSoup(i3.text, features='lxml')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> list_group = soup3.find(name='div', class_='listgroup')</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> from bs4.element import Tag</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> for child in list_group.children:</span><span style="color: #008000;">
#</span><span style="color: #008000;">     if isinstance(child, Tag):</span><span style="color: #008000;">
#</span><span style="color: #008000;">         project_tag = child.find(name='a', class_='mr-1')</span><span style="color: #008000;">
#</span><span style="color: #008000;">         size_tag = child.find(name='small')</span><span style="color: #008000;">
#</span><span style="color: #008000;">         temp = "项目:%s(%s); 项目路径:%s" % (project_tag.get('href'), size_tag.string, project_tag.string, )</span><span style="color: #008000;">
#</span><span style="color: #008000;">         print(temp)</span>

<span style="color: #008000;">#</span><span style="color: #008000;"> ############## 方式二 ##############</span><span style="color: #008000;">
#</span><span style="color: #008000;"> session = requests.Session()</span><span style="color: #008000;">
#</span><span style="color: #008000;"> # 1. 访问登陆页面,获取 authenticity_token</span><span style="color: #008000;">
#</span><span style="color: #008000;"> i1 = session.get('https://github.com/login')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> soup1 = BeautifulSoup(i1.text, features='lxml')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> tag = soup1.find(name='input', attrs={'name': 'authenticity_token'})</span><span style="color: #008000;">
#</span><span style="color: #008000;"> authenticity_token = tag.get('value')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> c1 = i1.cookies.get_dict()</span><span style="color: #008000;">
#</span><span style="color: #008000;"> i1.close()</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> # 1. 携带authenticity_token和用户名密码等信息,发送用户验证</span><span style="color: #008000;">
#</span><span style="color: #008000;"> form_data = {</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "authenticity_token": authenticity_token,</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "utf8": "",</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "commit": "Sign in",</span><span style="color: #008000;">
#</span><span style="color: #008000;">     "login": "wupeiqi@live.com",</span><span style="color: #008000;">
#</span><span style="color: #008000;">     'password': 'xxoo'</span><span style="color: #008000;">
#</span><span style="color: #008000;"> }</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> i2 = session.post('https://github.com/session', data=form_data)</span><span style="color: #008000;">
#</span><span style="color: #008000;"> c2 = i2.cookies.get_dict()</span><span style="color: #008000;">
#</span><span style="color: #008000;"> c1.update(c2)</span><span style="color: #008000;">
#</span><span style="color: #008000;"> i3 = session.get('https://github.com/settings/repositories')</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> soup3 = BeautifulSoup(i3.text, features='lxml')</span><span style="color: #008000;">
#</span><span style="color: #008000;"> list_group = soup3.find(name='div', class_='listgroup')</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> from bs4.element import Tag</span><span style="color: #008000;">
#
#</span><span style="color: #008000;"> for child in list_group.children:</span><span style="color: #008000;">
#</span><span style="color: #008000;">     if isinstance(child, Tag):</span><span style="color: #008000;">
#</span><span style="color: #008000;">         project_tag = child.find(name='a', class_='mr-1')</span><span style="color: #008000;">
#</span><span style="color: #008000;">         size_tag = child.find(name='small')</span><span style="color: #008000;">
#</span><span style="color: #008000;">         temp = "项目:%s(%s); 项目路径:%s" % (project_tag.get('href'), size_tag.string, project_tag.string, )</span><span style="color: #008000;">
#</span><span style="color: #008000;">         print(temp)</span></pre>
</div>
<span class="cnblogs_code_collapse">github</span></div>
<div class="cnblogs_code" οnclick="cnblogs_code_show('3506ce80-0d6f-4e2c-a342-deea5dfc1b00')"><img id="code_img_closed_3506ce80-0d6f-4e2c-a342-deea5dfc1b00" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_3506ce80-0d6f-4e2c-a342-deea5dfc1b00" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('3506ce80-0d6f-4e2c-a342-deea5dfc1b00',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_3506ce80-0d6f-4e2c-a342-deea5dfc1b00" class="cnblogs_code_hide">
<pre><span style="color: #008000;">#</span><span style="color: #008000;">!/usr/bin/env python</span><span style="color: #008000;">
#</span><span style="color: #008000;"> -*- coding:utf-8 -*-</span>
<span style="color: #0000ff;">import</span><span style="color: #000000;"> time

</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> requests
</span><span style="color: #0000ff;">from</span> bs4 <span style="color: #0000ff;">import</span><span style="color: #000000;"> BeautifulSoup

session </span>=<span style="color: #000000;"> requests.Session()

i1 </span>=<span style="color: #000000;"> session.get(
    url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">https://www.zhihu.com/#signin</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    headers</span>=<span style="color: #000000;">{
        </span><span style="color: #800000;">'</span><span style="color: #800000;">User-Agent</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    }
)

soup1 </span>= BeautifulSoup(i1.text, <span style="color: #800000;">'</span><span style="color: #800000;">lxml</span><span style="color: #800000;">'</span><span style="color: #000000;">)
xsrf_tag </span>= soup1.find(name=<span style="color: #800000;">'</span><span style="color: #800000;">input</span><span style="color: #800000;">'</span>, attrs={<span style="color: #800000;">'</span><span style="color: #800000;">name</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">_xsrf</span><span style="color: #800000;">'</span><span style="color: #000000;">})
xsrf </span>= xsrf_tag.get(<span style="color: #800000;">'</span><span style="color: #800000;">value</span><span style="color: #800000;">'</span><span style="color: #000000;">)

current_time </span>=<span style="color: #000000;"> time.time()
i2 </span>=<span style="color: #000000;"> session.get(
    url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">https://www.zhihu.com/captcha.gif</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    params</span>={<span style="color: #800000;">'</span><span style="color: #800000;">r</span><span style="color: #800000;">'</span>: current_time, <span style="color: #800000;">'</span><span style="color: #800000;">type</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">login</span><span style="color: #800000;">'</span><span style="color: #000000;">},
    headers</span>=<span style="color: #000000;">{
        </span><span style="color: #800000;">'</span><span style="color: #800000;">User-Agent</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    })

with open(</span><span style="color: #800000;">'</span><span style="color: #800000;">zhihu.gif</span><span style="color: #800000;">'</span>, <span style="color: #800000;">'</span><span style="color: #800000;">wb</span><span style="color: #800000;">'</span><span style="color: #000000;">) as f:
    f.write(i2.content)

captcha </span>= input(<span style="color: #800000;">'</span><span style="color: #800000;">请打开zhihu.gif文件,查看并输入验证码:</span><span style="color: #800000;">'</span><span style="color: #000000;">)
form_data </span>=<span style="color: #000000;"> {
    </span><span style="color: #800000;">"</span><span style="color: #800000;">_xsrf</span><span style="color: #800000;">"</span><span style="color: #000000;">: xsrf,
    </span><span style="color: #800000;">'</span><span style="color: #800000;">password</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">xxooxxoo</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    </span><span style="color: #800000;">"</span><span style="color: #800000;">captcha</span><span style="color: #800000;">"</span>: <span style="color: #800000;">'</span><span style="color: #800000;">captcha</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    </span><span style="color: #800000;">'</span><span style="color: #800000;">email</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">424662508@qq.com</span><span style="color: #800000;">'</span><span style="color: #000000;">
}
i3 </span>=<span style="color: #000000;"> session.post(
    url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">https://www.zhihu.com/login/email</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    data</span>=<span style="color: #000000;">form_data,
    headers</span>=<span style="color: #000000;">{
        </span><span style="color: #800000;">'</span><span style="color: #800000;">User-Agent</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    }
)

i4 </span>=<span style="color: #000000;"> session.get(
    url</span>=<span style="color: #800000;">'</span><span style="color: #800000;">https://www.zhihu.com/settings/profile</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    headers</span>=<span style="color: #000000;">{
        </span><span style="color: #800000;">'</span><span style="color: #800000;">User-Agent</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    }
)

soup4 </span>= BeautifulSoup(i4.text, <span style="color: #800000;">'</span><span style="color: #800000;">lxml</span><span style="color: #800000;">'</span><span style="color: #000000;">)
tag </span>= soup4.find(id=<span style="color: #800000;">'</span><span style="color: #800000;">rename-section</span><span style="color: #800000;">'</span><span style="color: #000000;">)
nick_name </span>= tag.find(<span style="color: #800000;">'</span><span style="color: #800000;">span</span><span style="color: #800000;">'</span>,class_=<span style="color: #800000;">'</span><span style="color: #800000;">name</span><span style="color: #800000;">'</span><span style="color: #000000;">).string
</span><span style="color: #0000ff;">print</span>(nick_name)</pre>
</div>
<span class="cnblogs_code_collapse">知乎</span></div>
<div class="cnblogs_code" οnclick="cnblogs_code_show('3453818c-ab07-48b0-9c6b-82e2fac8259f')"><img id="code_img_closed_3453818c-ab07-48b0-9c6b-82e2fac8259f" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_3453818c-ab07-48b0-9c6b-82e2fac8259f" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('3453818c-ab07-48b0-9c6b-82e2fac8259f',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_3453818c-ab07-48b0-9c6b-82e2fac8259f" class="cnblogs_code_hide">
<pre><span style="color: #008000;">#</span><span style="color: #008000;">!/usr/bin/env python</span><span style="color: #008000;">
#</span><span style="color: #008000;"> -*- coding:utf-8 -*-</span>
<span style="color: #0000ff;">import</span><span style="color: #000000;"> re
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> json
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> base64

</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> rsa
</span><span style="color: #0000ff;">import</span><span style="color: #000000;"> requests


</span><span style="color: #0000ff;">def</span><span style="color: #000000;"> js_encrypt(text):
    b64der </span>= <span style="color: #800000;">'</span><span style="color: #800000;">MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCp0wHYbg/NOPO3nzMD3dndwS0MccuMeXCHgVlGOoYyFwLdS24Im2e7YyhB0wrUsyYf0/nhzCzBK8ZC9eCWqd0aHbdgOQT6CuFQBMjbyGYvlVYU2ZP7kG9Ft6YV6oc9ambuO7nPZh+bvXH0zDKfi02prknrScAKC0XhadTHT3Al0QIDAQAB</span><span style="color: #800000;">'</span><span style="color: #000000;">
    der </span>=<span style="color: #000000;"> base64.standard_b64decode(b64der)

    pk </span>=<span style="color: #000000;"> rsa.PublicKey.load_pkcs1_openssl_der(der)
    v1 </span>= rsa.encrypt(bytes(text, <span style="color: #800000;">'</span><span style="color: #800000;">utf8</span><span style="color: #800000;">'</span><span style="color: #000000;">), pk)
    value </span>= base64.encodebytes(v1).replace(b<span style="color: #800000;">'</span><span style="color: #800000;">\n</span><span style="color: #800000;">'</span>, b<span style="color: #800000;">''</span><span style="color: #000000;">)
    value </span>= value.decode(<span style="color: #800000;">'</span><span style="color: #800000;">utf8</span><span style="color: #800000;">'</span><span style="color: #000000;">)

    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> value


session </span>=<span style="color: #000000;"> requests.Session()

i1 </span>= session.get(<span style="color: #800000;">'</span><span style="color: #800000;">https://passport.cnblogs.com/user/signin</span><span style="color: #800000;">'</span><span style="color: #000000;">)
rep </span>= re.compile(<span style="color: #800000;">"</span><span style="color: #800000;">'VerificationToken': '(.*)'</span><span style="color: #800000;">"</span><span style="color: #000000;">)
v </span>=<span style="color: #000000;"> re.search(rep, i1.text)
verification_token </span>= v.group(1<span style="color: #000000;">)

form_data </span>=<span style="color: #000000;"> {
    </span><span style="color: #800000;">'</span><span style="color: #800000;">input1</span><span style="color: #800000;">'</span>: js_encrypt(<span style="color: #800000;">'</span><span style="color: #800000;">wptawy</span><span style="color: #800000;">'</span><span style="color: #000000;">),
    </span><span style="color: #800000;">'</span><span style="color: #800000;">input2</span><span style="color: #800000;">'</span>: js_encrypt(<span style="color: #800000;">'</span><span style="color: #800000;">asdfasdf</span><span style="color: #800000;">'</span><span style="color: #000000;">),
    </span><span style="color: #800000;">'</span><span style="color: #800000;">remember</span><span style="color: #800000;">'</span><span style="color: #000000;">: False
}

i2 </span>= session.post(url=<span style="color: #800000;">'</span><span style="color: #800000;">https://passport.cnblogs.com/user/signin</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                  data</span>=<span style="color: #000000;">json.dumps(form_data),
                  headers</span>=<span style="color: #000000;">{
                      </span><span style="color: #800000;">'</span><span style="color: #800000;">Content-Type</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">application/json; charset=UTF-8</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                      </span><span style="color: #800000;">'</span><span style="color: #800000;">X-Requested-With</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">XMLHttpRequest</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                      </span><span style="color: #800000;">'</span><span style="color: #800000;">VerificationToken</span><span style="color: #800000;">'</span><span style="color: #000000;">: verification_token}
                  )

i3 </span>= session.get(url=<span style="color: #800000;">'</span><span style="color: #800000;">https://i.cnblogs.com/EditDiary.aspx</span><span style="color: #800000;">'</span><span style="color: #000000;">)

</span><span style="color: #0000ff;">print</span>(i3.text)</pre>
</div>
<span class="cnblogs_code_collapse">博客园</span></div>
<div class="cnblogs_code" οnclick="cnblogs_code_show('69190bc7-c5d2-4f2c-9d5b-1178fd280b87')"><img id="code_img_closed_69190bc7-c5d2-4f2c-9d5b-1178fd280b87" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_69190bc7-c5d2-4f2c-9d5b-1178fd280b87" class="code_img_opened" style="display: none;" οnclick="cnblogs_code_hide('69190bc7-c5d2-4f2c-9d5b-1178fd280b87',event)" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_69190bc7-c5d2-4f2c-9d5b-1178fd280b87" class="cnblogs_code_hide">
<pre><span style="color: #008000;">#</span><span style="color: #008000;">!/usr/bin/env python</span><span style="color: #008000;">
#</span><span style="color: #008000;"> -*- coding:utf-8 -*-</span>

<span style="color: #0000ff;">import</span><span style="color: #000000;"> requests


</span><span style="color: #008000;">#</span><span style="color: #008000;"> 第一步:访问登陆页,拿到X_Anti_Forge_Token,X_Anti_Forge_Code</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 1、请求url:https://passport.lagou.com/login/login.html</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 2、请求方法:GET</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 3、请求头:</span><span style="color: #008000;">
#</span><span style="color: #008000;">    User-agent</span>
r1 = requests.get(<span style="color: #800000;">'</span><span style="color: #800000;">https://passport.lagou.com/login/login.html</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                 headers</span>=<span style="color: #000000;">{
                     </span><span style="color: #800000;">'</span><span style="color: #800000;">User-Agent</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36</span><span style="color: #800000;">'</span><span style="color: #000000;">,
                 },
                 )

X_Anti_Forge_Token </span>= re.findall(<span style="color: #800000;">"</span><span style="color: #800000;">X_Anti_Forge_Token = '(.*?)'</span><span style="color: #800000;">"</span><span style="color: #000000;">, r1.text, re.S)[0]
X_Anti_Forge_Code </span>= re.findall(<span style="color: #800000;">"</span><span style="color: #800000;">X_Anti_Forge_Code = '(.*?)'</span><span style="color: #800000;">"</span><span style="color: #000000;">, r1.text, re.S)[0]
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">(X_Anti_Forge_Token, X_Anti_Forge_Code)
</span><span style="color: #008000;">#</span><span style="color: #008000;"> print(r1.cookies.get_dict())</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 第二步:登陆</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 1、请求url:https://passport.lagou.com/login/login.json</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 2、请求方法:POST</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 3、请求头:</span><span style="color: #008000;">
#</span><span style="color: #008000;">    cookie</span><span style="color: #008000;">
#</span><span style="color: #008000;">    User-agent</span><span style="color: #008000;">
#</span><span style="color: #008000;">    Referer:https://passport.lagou.com/login/login.html</span><span style="color: #008000;">
#</span><span style="color: #008000;">    X-Anit-Forge-Code:53165984</span><span style="color: #008000;">
#</span><span style="color: #008000;">    X-Anit-Forge-Token:3b6a2f62-80f0-428b-8efb-ef72fc100d78</span><span style="color: #008000;">
#</span><span style="color: #008000;">    X-Requested-With:XMLHttpRequest</span><span style="color: #008000;">
#</span><span style="color: #008000;"> 4、请求体:</span><span style="color: #008000;">
#</span><span style="color: #008000;"> isValidate:true</span><span style="color: #008000;">
#</span><span style="color: #008000;"> username:15131252215</span><span style="color: #008000;">
#</span><span style="color: #008000;"> password:ab18d270d7126ea65915c50288c22c0d</span><span style="color: #008000;">
#</span><span style="color: #008000;"> request_form_verifyCode:''</span><span style="color: #008000;">
#</span><span style="color: #008000;"> submit:''</span>
r2 =<span style="color: #000000;"> requests.post(
    </span><span style="color: #800000;">'</span><span style="color: #800000;">https://passport.lagou.com/login/login.json</span><span style="color: #800000;">'</span><span style="color: #000000;">,
    headers</span>=<span style="color: #000000;">{
        </span><span style="color: #800000;">'</span><span style="color: #800000;">User-Agent</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36</span><span style="color: #800000;">'</span><span style="color: #000000;">,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">Referer</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">https://passport.lagou.com/login/login.html</span><span style="color: #800000;">'</span><span style="color: #000000;">,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">X-Anit-Forge-Code</span><span style="color: #800000;">'</span><span style="color: #000000;">: X_Anti_Forge_Code,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">X-Anit-Forge-Token</span><span style="color: #800000;">'</span><span style="color: #000000;">: X_Anti_Forge_Token,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">X-Requested-With</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">XMLHttpRequest</span><span style="color: #800000;">'</span><span style="color: #000000;">
    },
    data</span>=<span style="color: #000000;">{
        </span><span style="color: #800000;">"</span><span style="color: #800000;">isValidate</span><span style="color: #800000;">"</span><span style="color: #000000;">: True,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">username</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">15131255089</span><span style="color: #800000;">'</span><span style="color: #000000;">,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">password</span><span style="color: #800000;">'</span>: <span style="color: #800000;">'</span><span style="color: #800000;">ab18d270d7126ea65915c50288c22c0d</span><span style="color: #800000;">'</span><span style="color: #000000;">,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">request_form_verifyCode</span><span style="color: #800000;">'</span>: <span style="color: #800000;">''</span><span style="color: #000000;">,
        </span><span style="color: #800000;">'</span><span style="color: #800000;">submit</span><span style="color: #800000;">'</span>: <span style="color: #800000;">''</span><span style="color: #000000;">
    },
    cookies</span>=<span style="color: #000000;">r1.cookies.get_dict()
)
</span><span style="color: #0000ff;">print</span>(r2.text)</pre>
</div>
<span class="cnblogs_code_collapse">拉勾网</span></div>
<p>拉钩参考:<a href="https://files.cnblogs.com/files/wupeiqi/%E7%88%AC%E5%8F%96%E6%8B%89%E5%8B%BE%E7%BD%91.zip" target="_blank">猛击这里</a></p>
<p>&nbsp;</p>
<p>  </p>
<p>  </p>
<p>&nbsp;</p>
<p></p>
<p><audio controls="controls" style="display: none;"></audio></p></div><div id="MySignature" style="display: block;"><div id="AllanboltSignature">
<div style="border-bottom: #e0e0e0 1px dashed; border-left: #e0e0e0 1px dashed; padding: 10px; font-family: 微软雅黑; font-size: 11px; border-top: #e0e0e0 1px dashed; border-right: #e0e0e0 1px dashed; " id="PSignature">
<div style="float:left;width:10%;">
     <img src="https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_Warning.png" style="width:70px;height:70px">
</div>
<div style="float:left;width:90%;padding-top:10px;">
作者:<a href="http://www.cnblogs.com/wupeiqi/" target="_blank">武沛齐</a> <br>
出处:<a href="http://www.cnblogs.com/wupeiqi/" target="_blank">http://www.cnblogs.com/wupeiqi/</a> <br>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。<br>
</div>
<div style="clear:both;"></div>
</div>
</div></div>
<div class="clear"></div>
<div id="blog_post_info_block">
<div id="BlogPostCategory"></div>
<div id="EntryTag"></div>
<div id="blog_post_info"><div id="green_channel">
        <a href="javascript:void(0);" id="green_channel_digg" οnclick="DiggIt(6283017,cb_blogId,1);green_channel_success(this,'谢谢推荐!');">好文要顶</a>
            <a id="green_channel_follow" οnclick="follow('7208b24d-95c9-e111-aa3f-842b2b196315');" href="javascript:void(0);">关注我</a>
    <a id="green_channel_favorite" οnclick="AddToWz(cb_entryId);return false;" href="javascript:void(0);">收藏该文</a>
    <a id="green_channel_weibo" href="javascript:void(0);" title="分享至新浪微博" οnclick="ShareToTsina()"><img src="//common.cnblogs.com/images/icon_weibo_24.png" alt=""></a>
    <a id="green_channel_wechat" href="javascript:void(0);" title="分享至微信" οnclick="shareOnWechat()"><img src="//common.cnblogs.com/images/wechat.png" alt=""></a>
</div>
<div id="author_profile">
    <div id="author_profile_info" class="author_profile_info">
            <a href="http://home.cnblogs.com/u/wupeiqi/" target="_blank"><img src="//pic.cnblogs.com/face/425762/20130809170024.png" class="author_avatar" alt=""></a>
        <div id="author_profile_detail" class="author_profile_info">
            <a href="http://home.cnblogs.com/u/wupeiqi/">武沛齐</a><br>
            <a href="http://home.cnblogs.com/u/wupeiqi/followees">关注 - 45</a><br>
            <a href="http://home.cnblogs.com/u/wupeiqi/followers">粉丝 - 7024</a>
        </div>
    </div>
    <div class="clear"></div>
    <div id="author_profile_honor"></div>
    <div id="author_profile_follow">
                <a href="javascript:void(0);" οnclick="follow('7208b24d-95c9-e111-aa3f-842b2b196315');return false;">+加关注</a>
    </div>
</div>
<div id="div_digg">
    <div class="diggit" οnclick="votePost(6283017,'Digg')">
        <span class="diggnum" id="digg_count">5</span>
    </div>
    <div class="buryit" οnclick="votePost(6283017,'Bury')">
        <span class="burynum" id="bury_count">0</span>
    </div>
    <div class="clear"></div>
    <div class="diggword" id="digg_tips">
    </div>
</div>
<script type="text/javascript">
    currentDiggType = 0;
</script></div>
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/wupeiqi/articles/6229414.html" class="p_n_p_prefix">« </a> 上一篇:<a href="https://www.cnblogs.com/wupeiqi/articles/6229414.html" title="发布于2016-12-28 14:39">Django之ModelForm组件</a><br><a href="https://www.cnblogs.com/wupeiqi/articles/6307554.html" class="p_n_p_prefix">» </a> 下一篇:<a href="https://www.cnblogs.com/wupeiqi/articles/6307554.html" title="发布于2017-01-19 17:35">KindEditor</a><br></div>
</div>


        </div>
        <div class="postDesc">posted @ <span id="post-date">2017-01-13 15:51</span> <a href="https://www.cnblogs.com/wupeiqi/">武沛齐</a> 阅读(<span id="post_view_count">6979</span>) 评论(<span id="post_comment_count">9</span>) &nbsp;<a href="https://i.cnblogs.com/EditArticles.aspx?postid=6283017" rel="nofollow">编辑</a> <a href="#" οnclick="AddToWz(6283017);return false;">收藏</a></div>
    </div>
    <script type="text/javascript">var allowComments=true,cb_blogId=133379,cb_entryId=6283017,cb_blogApp=currentBlogApp,cb_blogUserGuid='7208b24d-95c9-e111-aa3f-842b2b196315',cb_entryCreatedDate='2017/1/13 15:51:00';loadViewCount(cb_entryId);var cb_postType=2;var isMarkdown=false;</script>
    
</div><!--end: topics 文章、评论容器-->
</div><a name="!comments"></a><div id="blog-comments-placeholder"><div id="comments_pager_top"></div>
<!--done-->
<div class="feedback_area_title">评论列表</div>
<div class="feedbackNoItems"></div>
    

        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757514,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757514,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">引用</a></span>
                </div>
                <a href="#3757514" class="layer">#1楼</a><a name="3757514" id="comment_anchor_3757514"></a>  <span class="comment_date">2017-08-14 15:29</span> <a id="a_comment_author_3757514" href="https://www.cnblogs.com/otcsnow/" target="_blank">舞疼揽</a> <a href="http://msg.cnblogs.com/send/%E8%88%9E%E7%96%BC%E6%8F%BD" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757514" class="blog_comment_body">那个TIP=0, 是怎么执行到的?<br><br>webchat 那一节,<br><br>&lt;body&gt;<br>    &lt;img id="qcode" style="width: 200px;height: 200px;" src="https://login.weixin.qq.com/qrcode/{{ qcode }}"&gt;<br><br>    &lt;script src="/static/jquery-1.12.4.min.js"&gt;&lt;/script&gt;<br>    &lt;script&gt;<br>        TIP = 1;<br><br>        function checkLogin() {<br>            $.ajax({<br>                url: '/check_login/',<br>                data: {'tip': TIP},<br>                type: 'GET',<br>                dataType:'JSON',<br>                success:function (arg) {<br>                    if(arg.code == 201){<br>                        // 有人扫码,图片内容变为头像<br>                        $('#qcode').attr('src',arg.data);<br>                        checkLogin();<br>                        <b>TIP = 0;</b><br>                    }else if(arg.code == 408){<br>                        console.log("abc");<br>                        checkLogin();<br>                    }else if(arg.code == 200){<br>                        window.location.href = "/index/"<br>                    }<br>                }<br>            })<br>        }<br>        checkLogin();<br><br>    &lt;/script&gt;</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757514,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757514,'Bury',this)">反对(0)</a></div>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757519,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757519,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">引用</a></span>
                </div>
                <a href="#3757519" class="layer">#2楼</a><a name="3757519" id="comment_anchor_3757519"></a>  <span class="comment_date">2017-08-14 15:32</span> <a id="a_comment_author_3757519" href="https://www.cnblogs.com/otcsnow/" target="_blank">舞疼揽</a> <a href="http://msg.cnblogs.com/send/%E8%88%9E%E7%96%BC%E6%8F%BD" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757519" class="blog_comment_body"><img src="//images2017.cnblogs.com/blog/1095723/201708/1095723-20170814153100646-1162562162.png" alt="" border="0" "=""><br><br><br>老师你好,视频里面,,微信 爬虫那部分里,有个底方看不懂啊,<br><br><br>tip = 0 ;  怎么会执行到呢? 它前面有一个函数调用啊。</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757519,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757519,'Bury',this)">反对(0)</a></div>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757786,'9cszJ1gxd2GuUXWly6+ugmBtkQt2qDCRSz6OwsikquheZegiGFZfUQ==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757786,'9cszJ1gxd2GuUXWly6+ugmBtkQt2qDCRSz6OwsikquheZegiGFZfUQ==')">引用</a></span>
                </div>
                <a href="#3757786" class="layer">#3楼</a><a name="3757786" id="comment_anchor_3757786"></a>[<span class="louzhu">楼主</span>]  <span class="comment_date">2017-08-14 19:28</span> <a id="a_comment_author_3757786" href="https://www.cnblogs.com/wupeiqi/" target="_blank">武沛齐</a> <a href="http://msg.cnblogs.com/send/%E6%AD%A6%E6%B2%9B%E9%BD%90" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757786" class="blog_comment_body"><a href="#3757519" title="查看所回复的评论" οnclick="commentManager.renderComments(0,50,3757519);">@</a>
风清扬0-0-0<br>扫码之后,这个值需要变成0。等待用户在手机上点击确定</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757786,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757786,'Bury',this)">反对(0)</a></div><span id="comment_3757786_avatar" style="display:none;">http://pic.cnblogs.com/face/425762/20130809170024.png</span>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757790,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757790,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">引用</a></span>
                </div>
                <a href="#3757790" class="layer">#4楼</a><a name="3757790" id="comment_anchor_3757790"></a>  <span class="comment_date">2017-08-14 19:32</span> <a id="a_comment_author_3757790" href="https://www.cnblogs.com/otcsnow/" target="_blank">舞疼揽</a> <a href="http://msg.cnblogs.com/send/%E8%88%9E%E7%96%BC%E6%8F%BD" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757790" class="blog_comment_body"><a href="#3757786" title="查看所回复的评论" οnclick="commentManager.renderComments(0,50,3757786);">@</a>
武沛齐<br><br>tip前面有个 调用函数, tip=0 这一句根本执行不到啊</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757790,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757790,'Bury',this)">反对(0)</a></div>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757795,'9cszJ1gxd2GuUXWly6+ugmBtkQt2qDCRSz6OwsikquheZegiGFZfUQ==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757795,'9cszJ1gxd2GuUXWly6+ugmBtkQt2qDCRSz6OwsikquheZegiGFZfUQ==')">引用</a></span>
                </div>
                <a href="#3757795" class="layer">#5楼</a><a name="3757795" id="comment_anchor_3757795"></a>[<span class="louzhu">楼主</span>]  <span class="comment_date">2017-08-14 19:38</span> <a id="a_comment_author_3757795" href="https://www.cnblogs.com/wupeiqi/" target="_blank">武沛齐</a> <a href="http://msg.cnblogs.com/send/%E6%AD%A6%E6%B2%9B%E9%BD%90" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757795" class="blog_comment_body"><a href="#3757790" title="查看所回复的评论" οnclick="commentManager.renderComments(0,50,3757790);">@</a>
风清扬0-0-0<br>TIP=0放上面</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757795,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757795,'Bury',this)">反对(0)</a></div><span id="comment_3757795_avatar" style="display:none;">http://pic.cnblogs.com/face/425762/20130809170024.png</span>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757797,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757797,'3XAmd+eGJXFqg0Doile1vV16n64EMiihSBNiMEEUDXAwu8UfcICFdw==')">引用</a></span>
                </div>
                <a href="#3757797" class="layer">#6楼</a><a name="3757797" id="comment_anchor_3757797"></a>  <span class="comment_date">2017-08-14 19:41</span> <a id="a_comment_author_3757797" href="https://www.cnblogs.com/otcsnow/" target="_blank">舞疼揽</a> <a href="http://msg.cnblogs.com/send/%E8%88%9E%E7%96%BC%E6%8F%BD" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757797" class="blog_comment_body"><a href="#3757795" title="查看所回复的评论" οnclick="commentManager.renderComments(0,50,3757795);">@</a>
武沛齐<br>那为什么也能正确执行、并得到结果啊?</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757797,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757797,'Bury',this)">反对(0)</a></div>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(3757805,'9cszJ1gxd2GuUXWly6+ugmBtkQt2qDCRSz6OwsikquheZegiGFZfUQ==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(3757805,'9cszJ1gxd2GuUXWly6+ugmBtkQt2qDCRSz6OwsikquheZegiGFZfUQ==')">引用</a></span>
                </div>
                <a href="#3757805" class="layer">#7楼</a><a name="3757805" id="comment_anchor_3757805"></a>[<span class="louzhu">楼主</span>]  <span class="comment_date">2017-08-14 19:49</span> <a id="a_comment_author_3757805" href="https://www.cnblogs.com/wupeiqi/" target="_blank">武沛齐</a> <a href="http://msg.cnblogs.com/send/%E6%AD%A6%E6%B2%9B%E9%BD%90" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_3757805" class="blog_comment_body"><a href="#3757797" title="查看所回复的评论" οnclick="commentManager.renderComments(0,50,3757797);">@</a>
风清扬0-0-0<br>应该多发了一次请求,下次就是生效了</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(3757805,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(3757805,'Bury',this)">反对(0)</a></div><span id="comment_3757805_avatar" style="display:none;">http://pic.cnblogs.com/face/425762/20130809170024.png</span>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(4025164,'Ft4wbBw4AuJ6tKrX2EV0WLximBG1FWybOP0/doIeaNCSPv8b1Kn3tw==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(4025164,'Ft4wbBw4AuJ6tKrX2EV0WLximBG1FWybOP0/doIeaNCSPv8b1Kn3tw==')">引用</a></span>
                </div>
                <a href="#4025164" class="layer">#8楼</a><a name="4025164" id="comment_anchor_4025164"></a>  <span class="comment_date">2018-07-20 18:44</span> <a id="a_comment_author_4025164" href="https://www.cnblogs.com/guoxiaoyan/" target="_blank">GuoXY</a> <a href="http://msg.cnblogs.com/send/GuoXY" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_4025164" class="blog_comment_body">老师 用爬虫怎么给你的每个文章点个赞</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(4025164,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(4025164,'Bury',this)">反对(0)</a></div><span id="comment_4025164_avatar" style="display:none;">http://pic.cnblogs.com/face/1308093/20180521202438.png</span>
            </div>
        </div>
    
        <div class="feedbackItem">
            <div class="feedbackListSubtitle">
                <div class="feedbackManage">
                    &nbsp;&nbsp;<span class="comment_actions"><a href="javascript:void(0);" οnclick="return ReplyComment(4171966,'gk7446PEdbcrSt8aYy8+wlo5kzUjKdwctGDkzK6vYnSHCWNTAj4apA==')">回复</a><a href="javascript:void(0);" οnclick="return QuoteComment(4171966,'gk7446PEdbcrSt8aYy8+wlo5kzUjKdwctGDkzK6vYnSHCWNTAj4apA==')">引用</a></span>
                </div>
                <a href="#4171966" class="layer">#9楼</a><a name="4171966" id="comment_anchor_4171966"></a><span id="comment-maxId" style="display:none;">4171966</span><span id="comment-maxDate" style="display:none;">2019/1/26 20:45:12</span>  <span class="comment_date">2019-01-26 20:45</span> <a id="a_comment_author_4171966" href="https://www.cnblogs.com/lee-bai/" target="_blank">李.白</a> <a href="http://msg.cnblogs.com/send/%E6%9D%8E.%E7%99%BD" title="发送站内短消息" class="sendMsg2This">&nbsp;</a>
            </div>
            <div class="feedbackCon">
                <div id="comment_body_4171966" class="blog_comment_body"><a href="#3757790" title="查看所回复的评论" οnclick="commentManager.renderComments(0,50,3757790);">@</a>
舞疼揽<br>test</div><div class="comment_vote"><a href="javascript:void(0);" class="comment_digg" οnclick="return voteComment(4171966,'Digg',this)">支持(0)</a><a href="javascript:void(0);" class="comment_bury" οnclick="return voteComment(4171966,'Bury',this)">反对(0)</a></div>
            </div>
        </div>
    <div id="comments_pager_bottom"></div></div><script type="text/javascript">var commentManager = new blogCommentManager();commentManager.renderComments(0);</script>
<div id="comment_form" class="commentform">
<a name="commentform"></a>
<div id="divCommentShow"></div>
<div id="comment_nav"><span id="span_refresh_tips"></span><a href="javascript:void(0);" οnclick="return RefreshCommentList();" id="lnk_RefreshComments" runat="server" clientidmode="Static">刷新评论</a><a href="#" οnclick="return RefreshPage();">刷新页面</a><a href="#top">返回顶部</a></div>
<div id="comment_form_container"><script type="text/javascript" src="//mention.cnblogs.com/bundles/mention.js?id=20160615"></script>
<div id="commentform_title">发表评论</div>
<span id="tip_comment" style="color:Red"></span>
<p>
昵称:<input type="text" id="tbCommentAuthor" class="author" disabled="disabled" size="50" value="南山深处">
</p>
<div class="commentbox_main">
<div class="commentbox_title">
<div class="commentbox_title_left">评论内容:</div>
<div class="commentbox_title_right">
<img id="ubb_quote" class="comment_icon" src="//static.cnblogs.com/images/ubb/quote.gif" alt="引用" title="添加引用" οnclick="insertUBB('tbCommentBody','quote')">
<img id="ubb_bold" class="comment_icon" src="//static.cnblogs.com/images/ubb/b.png" alt="粗体" title="添加粗体" οnclick="insertUBB('tbCommentBody','b')">
<img id="ubb_url" class="comment_icon" src="//static.cnblogs.com/images/ubb/lk.png" alt="链接" title="添加链接" οnclick="insertUbbUrl('tbCommentBody')">
<img id="ubb_indent" class="comment_icon" src="//static.cnblogs.com/images/ubb/indent.png" alt="缩进" title="添加首行缩进" οnclick="insertIndent('tbCommentBody')">
<img id="ubb_code" class="comment_icon" src="//static.cnblogs.com/images/ubb/InsertCode.gif" alt="代码" title="添加代码" οnclick="insertUbbCode()">
<img id="ubb_img" class="comment_icon" src="//static.cnblogs.com/images/ubb/img.gif" alt="图片" title="上传图片" οnclick="OpenImageUploadWindow();">
</div>
</div>
<div class="clear"></div>
<textarea id="tbCommentBody" class="comment_textarea"></textarea>
</div>
<p id="commentbox_opt">
<input id="btn_comment_submit" type="button" class="comment_btn" value="提交评论">
<span id="span_comment_canceledit" style="display:none"><a href="javascript:void(0);" οnclick="return CancelCommentEdit()">不改了</a></span>
<a href="javascript:void(0);" οnclick="return logout();">退出</a>
        <a id="commentbox_opt_sub" href="javascript:void(0);" title="订阅后有新评论时会邮件通知您" οnclick="commentManager.Subscribe()">订阅评论</a>
</p>
<div id="tip_comment2" style="color:Red"></div>
<p>
[Ctrl+Enter快捷键提交]
</p>
<div style="display:none">
<span id="comment_edit_id"></span><span id="span_parentcomment_id"></span>
<span id="span_parent_id"></span>
<span id="span_comment_replyto"></span>
<span id="span_comment_posted"></span>
</div>
</div>
<div class="ad_text_commentbox" id="ad_text_under_commentbox"></div>
<div id="ad_t2"><a href="http://www.ucancode.com/index.htm" target="_blank" οnclick="ga('send', 'event', 'Link', 'click', 'T2-工控')">【推荐】超50万VC++源码: 大型组态工控、电力仿真CAD与GIS源码库!</a><br><a href="https://www.cnblogs.com/xhload3d/p/10328669.html" target="_blank" οnclick="ga('send', 'event', 'Link', 'click', 'T2-图扑')">【推荐】基于 HTML5 的 WebGL 楼宇自控 3D 可视化监控</a><br><a href="https://gitee.com/enterprises?from=bky-2" target="_blank" οnclick="ga('send', 'event', 'Link', 'click', 'T2-gitee')">【推荐】专业便捷的企业级代码托管服务 - Gitee 码云</a><br></div>
<div id="opt_under_post"></div>
<script async="async" src="https://www.googletagservices.com/tag/js/gpt.js"></script>
<script>
  var googletag = googletag || {};
  googletag.cmd = googletag.cmd || [];
</script>
<script>
  googletag.cmd.push(function() {
        googletag.defineSlot('/1090369/C1', [300, 250], 'div-gpt-ad-1546353474406-0').addService(googletag.pubads());
        googletag.defineSlot('/1090369/C2', [468, 60], 'div-gpt-ad-1539008685004-0').addService(googletag.pubads());
        googletag.pubads().enableSingleRequest();
        googletag.enableServices();
  });
</script>
<div id="cnblogs_c1" class="c_ad_block">
    <div id="div-gpt-ad-1546353474406-0" style="height:250px; width:300px;"></div>
</div>
<div id="under_post_news"><div class="itnews c_ad_block"><b>相关博文:</b><br>·  <a href="https://www.cnblogs.com/dudu/archive/2004/04/22/7310.html" target="_blank" οnclick="clickRecomItmem(7310,'VNM7GSgV3YjpKvzsrHEPZvs5MzZ1KkQ+VR6xBVJirUy3Vt4k+Evc4qUct8fhFaQuYmlXev5yWExDbs8=')">推荐一篇介绍.NET MetaData的文章</a><br>·  <a href="https://www.cnblogs.com/diandian/articles/8244.html" target="_blank" οnclick="clickRecomItmem(8244,'VNM7GSgV3YjpKvzsrHEPZvs5MzZ1KkQ+VR6xBVJirUy3Vt4k+Evc4qUct8fhFaQuYmlXev5yWExDbs8=')">[游记]西安行—第二天</a><br>·  <a href="https://www.cnblogs.com/iouniuniu/articles/768.html" target="_blank" οnclick="clickRecomItmem(768,'VNM7GSgV3YjpKvzsrHEPZvs5MzZ1KkQ+VR6xBVJirUy3Vt4k+Evc4qUct8fhFaQuYmlXev5yWExDbs8=')">.Text的Url中的日期问题</a><br>·  <a href="https://www.cnblogs.com/qingmie/archive/2004/07/04/21056.html" target="_blank" οnclick="clickRecomItmem(21056,'VNM7GSgV3YjpKvzsrHEPZvs5MzZ1KkQ+VR6xBVJirUy3Vt4k+Evc4qUct8fhFaQuYmlXev5yWExDbs8=')">07042004</a><br>·  <a href="https://www.cnblogs.com/moonknight/articles/20171.html" target="_blank" οnclick="clickRecomItmem(20171,'VNM7GSgV3YjpKvzsrHEPZvs5MzZ1KkQ+VR6xBVJirUy3Vt4k+Evc4qUct8fhFaQuYmlXev5yWExDbs8=')">开发 Smartphone 游戏</a><br></div></div>
<div id="cnblogs_c2" class="c_ad_block">
    <div id="div-gpt-ad-1539008685004-0" style="height:60px; width:468px;"></div>
</div>
<div id="under_post_kb"><div class="itnews c_ad_block"><b>最新新闻</b>:<br> ·  <a href="https://news.cnblogs.com/n/618591/" target="_blank">对话顾剑民博士:自动驾驶热度“滑向低谷”,寒冬未真正到来</a><br> ·  <a href="https://news.cnblogs.com/n/618634/" target="_blank">彭蕾:CEO如何面对“至暗时刻”和无可诉说的孤独感</a><br> ·  <a href="https://news.cnblogs.com/n/618608/" target="_blank">BuzzFeed衰落启示:无限竞争+劣质产品=商业模式失败</a><br> ·  <a href="https://news.cnblogs.com/n/618640/" target="_blank">阿里没有“失速”</a><br> ·  <a href="https://news.cnblogs.com/n/618633/" target="_blank">FBI抓捕第二位苹果中国工程师 指控窃取无人车机密面临10年监禁</a><br>» <a href="http://news.cnblogs.com/" title="IT新闻" target="_blank">更多新闻...</a></div></div>
<div id="HistoryToday" class="c_ad_block"></div>
<script type="text/javascript">
 if(enablePostBottom()) {
    codeHighlight();
    fixPostBody();
    setTimeout(function () { incrementViewCount(cb_entryId); }, 50);
    deliverT2();
    deliverC1();
    deliverC2();    
    loadNewsAndKb();
    loadBlogSignature();
    LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
    GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
    loadOptUnderPost();
    GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);  
}
</script>
</div>

    
    </div>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值