我正在尝试获取此页面的代码,如下所示:
import requests
if __name__ == '__main__':
response = requests.get('https://www.rusplitka.ru/catalog/plitochnyy-kley-zatirka/')
print(response.text)
基本上,代码是正确的,但是每个产品都有一个铭文:是否有库存。我在 python 的帮助下收到的代码中没有这样的东西。
可能是什么问题呢?也许这些铭文不是立即加载的,而是页面加载后的一段时间?
是的。这称为动态内容加载。几乎所有网站都以这种方式工作,除了那些在上世纪 90 年代编写并保留在那里的网站。动态加载的一种常见方法是页面的 javascript 代码向服务器发出 AJAX 请求,以在加载和呈现主页模板后请求其他内容。除浏览器外,没有任何 http 客户端会将页面的完整最终代码返回给您。提示:有一个特殊的库(不仅适用于 Python),它通过特殊的驱动程序(每个浏览器都有自己的驱动程序,需要安装)模仿(更准确地说,连接到现有的)浏览器,并且可以完全加载所有内容。它被称为硒。
PS 对于高级程序员,如果您知道如何理解网站的内部 API,则可能不需要 selenium。
您的问题是对现代网络编程的无知。你需要开始学习材料。