擅长:python、mysql、java
<p>代码不起作用的原因是,BeautifulSoup跳过了<code></html></code>之后的任何html代码(这基本上关闭了文档),因此它只解析<code><html></code>标记内的所有内容,而作为替换登录标记的JavaScript的<code><script></code>标记出现在</em>关闭<code></html></code>标记之后,它不会被BeautifulSoup解析,因此您无法获取它。在浏览器中(我在FireFox上进行了测试),关闭<code></html></code>标记后的所有内容都被移动到文档体中,这就是为什么在浏览器中查看站点时登录标记会正确显示的原因。为此,您应该将BeautifulSoup放在一边,只需使用普通Python(可读版本):</p>
<pre class="lang-py prettyprint-override"><code>import requests
html = requests.get('http://lms.uaf.edu.pk/login/index.php').text # get the html
token_begin = html.find("document.getElementById('token').value='") + len("document.getElementById('token').value='") # find the start of the login token
token_end = html[token_begin:].find("'") # find the end of the login token
token = html[token_begin:token_end]
</code></pre>