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、 对。