Python请求没有响应正确的html

Python请求没有响应正确的html,python,python-3.x,Python,Python 3.x,如果有人能帮我解决一个问题,我将不胜感激。我试图刮网站作为xxx的股票符号。例如我的代码工作了一年多,但由于某种原因不再有效,因为请求页面将返回html中一些奇怪的部分。正如你所看到的,这个网页比我的请求结果更复杂。我还尝试了beautifulsoup等等,因为我认为这个问题与javascript有关,但我得到了相同的结果 部分代码(带请求): 结果: <!DOCTYPE html> <html lang="en"> <head> <meta chars

如果有人能帮我解决一个问题,我将不胜感激。我试图刮网站作为xxx的股票符号。例如我的代码工作了一年多,但由于某种原因不再有效,因为请求页面将返回html中一些奇怪的部分。正如你所看到的,这个网页比我的请求结果更复杂。我还尝试了beautifulsoup等等,因为我认为这个问题与javascript有关,但我得到了相同的结果

部分代码(带请求):

结果:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link href="about:blank" rel="shortcut icon"/>
<script     src="https://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js">            </script>
<script src="https://resources.kasadapolyform.io/kpfp.js"></script>
<script src="/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-    862e0f06eea3/fingerprint/script/kpf.js?url=/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint&amp;token=46f828d0-bb88-fcd0-c7ad-47f18d3c13a2"></script>
</head>
<body>
</body>
</html>


我非常感谢您的帮助。

正如Jaxi所提到的,返回的html意味着页面几乎完全由JavaScript而不是html呈现

为了解决这个问题,您需要使用一个工具来运行JavaScript,然后使用HTML

一个例子是,它用于UI测试

另一个是Kenneth Reitz(请求
包的原始作者)的包。这将使用引擎盖下的Chromium浏览器为您呈现页面。自述文件:

>>> r = session.get('http://python-requests.org')

>>> r.html.render()

>>> r.html.search('Python 2 will retire in only {months} months!')['months']
'<time>25</time>'
>r=session.get('http://python-requests.org')
>>>r.html.render()
>>>search('Python2将在{months}months!后退役!')['months']
'25'

作为旁注,正如ewindes所提到的,您应该始终小心,并确保您正在抓取的站点允许网络抓取。如果不是出于合法性,也不是出于礼貌。

看起来他们更新了网站,通过JS而不是服务器端加载数据。除了使用硒,你什么都做不了。不要那样做。内容不是你的。至少我现在知道问题的原因了。我还尝试了请求\u html,但在遇到交叉问题“Pypetteer.errors.NetworkError:Protocol Error:找不到指定id的上下文None”之前,我很快将尝试使用selenium。我只是从那里略过了价格。我得到了使用selenium的东西,还有前面的代码,xpath中有一些小的更改,看起来没有运行这么多JS。非常感谢
>>> r = session.get('http://python-requests.org')

>>> r.html.render()

>>> r.html.search('Python 2 will retire in only {months} months!')['months']
'<time>25</time>'