<p><code>requests.get()</code>只返回“GET”请求之后从服务器接收的标记,而不需要任何进一步的客户端执行。你知道吗</p>
<p>而在浏览器环境中,可以在客户端javascript上完成更多的工作。我没有具体查看过您的页面,但是可能有某些javascript代码正在进行进一步的处理。你知道吗</p>
<p>你可以用硒来代替<code>web browser</code>或<code>requests</code>。您可以阅读更多关于它的信息<a href="https://realpython.com/modern-web-automation-with-python-and-selenium/" rel="nofollow noreferrer">here</a>。你知道吗</p>
<p>Selenium允许您像使用浏览器一样浏览页面,但也允许您灵活地使用python代码在页面上自动执行+控制操作。你知道吗</p>
<p>您可以使用<a href="https://sites.google.com/a/chromium.org/chromedriver/downloads" rel="nofollow noreferrer">Selenium Chrome Webdriver</a>在后台加载页面。(也可以使用Firefox驱动程序)。你知道吗</p>
<p>转到<code>chrome://settings/help</code>检查当前的chrome版本,并从<a href="https://sites.google.com/a/chromium.org/chromedriver/downloads" rel="nofollow noreferrer">here</a>下载该版本的驱动程序。确保将驱动程序文件保存在<code>PATH</code>或与python脚本所在的文件夹中。你知道吗</p>
<p>试试这个:</p>
<pre><code>from selenium.webdriver import Chrome # pip install selenium
from selenium.webdriver.chrome.options import Options
url = "http://servername/views/workbookname/dashboard1?:refresh=yes"
#Make it headless i.e. run in backgroud without opening chrome window
chrome_options = Options()
chrome_options.add_argument(" headless")
# use Chrome to get page with javascript generated content
with Chrome(executable_path="./chromedriver", options=chrome_options) as browser:
browser.get(url)
page_source = browser.page_source
</code></pre>
<hr/>
<p><strong>注意</strong></p>
<p>当您打开URL时,<code>webbrowser</code>模块启动您的默认浏览器,该浏览器已经缓存了您的凭据/cookies。然而,如果您的URL需要任何身份验证或登录才能访问,那么您必须在使用selenium获取页面时提供这些信息。将每个selenium web驱动程序会话看作一个<strong>匿名的会话。<a href="https://stackoverflow.com/questions/21186327/fill-username-and-password-using-selenium-in-python">Here</a>这是一个如何用web驱动程序模拟登录的示例。你知道吗</p>
<hr/>
<p>参考文献:</p>
<p><a href="https://stackoverflow.com/questions/40555930/selenium-chromedriver-executable-needs-to-be-in-path/40556092">selenium - chromedriver executable needs to be in PATH</a></p>