我试着使用beautifulsoup4和python来抓取某个网站。然而,当我试图从URL中查看内容时,它只给我一个标题部分,没有给我想要使用的主体部分
URL = "url"
URL_page = requests.get(URL)
print(URL_page.text)
这给了我
<!DOCTYPE html>
<html>
<head>
"Contents of Header"
</head>
<body>
<div id='root'></div>
</body>
</html>
body标签中应该有内容,但没有显示任何内容。 此网页的原始html如下所示
<html xmlns:wb="http://open.weibo.com/wb" style>
▶<head...</head> ← ONLY GIVES ME THIS
▶<body data-loaded="true">...</body> ← I NEED THIS PART
</html>
我想,你应该使用
'user-agent'
。你可以试试:不知道你到底想要什么,也不知道你想要什么作为输出。但是您可以从ajax访问json响应:
如果没有有效的URL,很难提供有效的答案,但您的问题确实提供了一些线索
首先,您说您在GET的响应中收到了:
但是,您可以在web浏览器中看到:
这表明页面运行JavaScript代码,在加载初始页面后继续加载和构建页面
没有办法用
requests
或bs4
或类似的东西来回避这个问题。您可以检查初始页面加载之后有哪些请求包含实际内容(可能是另一段html、一些json等),并使用该请求获取内容。如果您想尝试这样做,请尝试在良好的浏览器中打开开发人员工具,并在加载页面时查看“网络”选项卡,您将看到所有请求,其中一个可能包含您要查找的内容但是,如果在渲染后需要html,就像脚本渲染一样,可以尝试使用Python中支持JavaScript的浏览器,比如通过Selenium Chrome webdriver驱动的Chrome:
请注意,您需要安装Selenium,并需要获得相应驱动程序的副本,如
chromedriver.exe
。将其添加到您的虚拟环境:pip install selenium
(将可执行文件放到脚本文件夹中)
相关问题 更多 >
编程相关推荐