如何使用Python读取本地存储?

问题描述 投票:4回答:2

我必须使用Python来自动访问(读取)网页。使用Python,我可以很容易地访问网页的内容(HTML代码)以及服务器发送的cookies。

现在,在HTML5中,我们有一个新的概念 "本地存储"。因此,我需要修改我的Python脚本,以便我也能读取存储在本地存储中的数据。

可以这样做吗?有没有什么Python库可以让它变得简单?

python html web-scraping local-storage
2个回答
3
投票

是的,Python本身并不包含JavaScript解释器,所以你可以通过Selenium在一个web浏览器实例上执行自定义脚本,如 薯条 已提及。

其他选择是 PhantomJS,运行无头浏览器。

脚本来遍历本地存储

for (var i = 0; i < localStorage.length; i++){
    key=localStorage.key(i); 
    console.log(key+': '+localStorage.getItem(key));
}

高级脚本

如前所述 此处 HTML5功能浏览器也应该实现 Array.prototype.map. 所以脚本将。

Array.apply(0, new Array(localStorage.length)).map(function (o, i) 
   { return localStorage.key(i)+':'+localStorage.getItem(localStorage.key(i)); }
)

Python绑定

你可能想使用Python绑定与开发框架的桌面。例如 PyQt.

为什么JavaScript要取本地存储

来自 定义:

不像cookies,服务器和客户端都可以访问。网络存储属于客户端脚本的专属权限。. 在每次HTTP请求中,Web存储数据不会自动传输到服务器,Web服务器也不能直接写入Web存储。不过,无论是哪种效果,都可以通过明确的客户端脚本来实现,这样就可以微调与服务器的预期交互。

所以在我看来,本地存储是指Web浏览器(如Opera)存储在浏览器运行的硬盘(或云机)某个地方的数据。因此,要获取这些数据,你需要在本地黑进Opera的执行文件、库文件或数据文件,这很难。最简单的方法是应用客户端脚本,即JavaScript。


0
投票

我不知道你现在使用的是哪个库,但你可以使用Selenium和Web Driver API。这个API允许你控制一个浏览器,比如ChromeFirefox,或者一个无头浏览器,比如PhantomJS。

感谢这个API,你可以 浏览到正确的页面 然后 执行一个javascript片段 访问localStorage变量。

© www.soinside.com 2019 - 2024. All rights reserved.