Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 貌似;“垃圾”;请求的结果_Python_Python Requests_Urllib - Fatal编程技术网

Python 貌似;“垃圾”;请求的结果

Python 貌似;“垃圾”;请求的结果,python,python-requests,urllib,Python,Python Requests,Urllib,我有一个网页。当我尝试使用请求模块获取其html时,如下所示: import requests link = "https://www.worldmarktheclub.com/resorts/7m/" f = requests.get(link) print(f.text) 我得到的结果如下: <!DOCTYPE html> <html><head> <meta http-equiv="Pragma" content="no-cache"/>

我有一个网页。当我尝试使用
请求
模块获取其html时,如下所示:

import requests

link = "https://www.worldmarktheclub.com/resorts/7m/"
f = requests.get(link)
print(f.text)
我得到的结果如下:

<!DOCTYPE html>
<html><head>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<meta http-equiv="CacheControl" content="no-cache"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="shortcut icon" href="data:;base64,iVBORw0KGgo="/>

<script>

(function(){
    var securemsg;
    var dosl7_common;

// seemingly garbage like [Z.li]+Z._j+Z.LO+Z.SJ+"(/.{"+Z.i+","+Z.Ii+"}

</script>

<script type="text/javascript" src="/TSPD/08e841a5c5ab20007f02433a700e2faba779c2e847ad5d441605ef3d4bbde75cd229bcdb30078f66?type=9"></script>
<noscript>Please enable JavaScript to view the page content.</noscript>
</head><body>
</body></html>

(功能(){
var-securemsg;
var dosl7_普通;
//看起来像垃圾一样的[Z.li]+Z.j+Z.LO+Z.SJ+”(/。{“+Z.i+”,“+Z.Ii+”)
请启用JavaScript以查看页面内容。
只显示了部分结果。但是,当我在浏览器中查看网页时,我可以看到正确的html。我猜网页的编码可能有问题,但无法解决。使用
urllib.request
+
read()
会给出相同的错误结果。如何更正此问题。提前感谢

正如@DeepSpace所建议的,脚本中的垃圾问题是由缩小的JS代码造成的。但是为什么我没有正确地获取html?

您认为的“垃圾”是模糊/缩小的JS代码,它是在
标记中编写的,而不是在外部JS文件中编写的

如果您查看
f.text
的底部,您将看到
请启用JavaScript查看页面内容。

请求
不是浏览器,因此它无法执行此页面正在使用的JS代码,并且服务器将不允许不支持JS的用户代理访问它。将
用户代理
标题设置为Chrome(
Chrome/60.0.3112.90
)仍然不起作用


您将不得不求助于其他允许JS执行的工具,例如selenium。

HTML代码是由您看到的Javascript代码动态生成的。不幸的是,正如@DeepSpace所说,请求不执行Javascript


作为替代,我建议使用selenium。它是一个模拟浏览器的库,因此可以执行Javascript。

谢谢你的回答。但是如果它没有像纯html的页面正文那样包含在
标记中,请返回
\r\n
如果我理解得很清楚,你想查看请求页面的html内容吗?@LouisSaglio、 对。