Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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_Html_Web Scraping_Local Storage - Fatal编程技术网

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

如何使用Python读取本地存储?,python,html,web-scraping,local-storage,Python,Html,Web Scraping,Local Storage,我开始使用Python自动访问(阅读)网页。使用Python,我可以轻松访问web页面的内容(HTML代码)以及服务器发送的Cookie 现在,在HTML5中,我们有了一个新概念“本地存储”。因此,我需要修改我的Python脚本,以便我也可以读取存储在本地存储器中的数据 有可能吗?是否有任何Python库可以让它变得简单?我不知道您现在正在使用哪个库,但您可以使用Selenium和Web驱动程序API。此API允许您控制浏览器(如Chrome/Firefox)或无头浏览器(如PhantomJS)

我开始使用Python自动访问(阅读)网页。使用Python,我可以轻松访问web页面的内容(HTML代码)以及服务器发送的Cookie

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


有可能吗?是否有任何Python库可以让它变得简单?

我不知道您现在正在使用哪个库,但您可以使用Selenium和Web驱动程序API。此API允许您控制浏览器(如Chrome/Firefox)或无头浏览器(如PhantomJS)


有了这个api,您可以访问localStorage变量。

是的,Python本身不包括JavaScript解释器。 因此,您可以通过Selenium在web浏览器实例上执行自定义脚本,正如thibpat所提到的

另一个选项是PhantomJS,运行无头浏览器

在本地存储上迭代的脚本 Python包 您可能希望在桌面开发框架中使用Python绑定。例

为什么使用JavaScript获取本地存储 从:

与服务器端和客户端都可以访问的Cookie不同,web存储完全属于客户端脚本的权限范围。 Web存储数据不会在每个HTTP请求中自动传输到服务器,并且Web服务器不能直接写入Web存储。但是,这两种效果都可以通过显式客户端脚本来实现,从而允许微调所需的与服务器的交互


因此,在我看来,本地存储是网络浏览器(例如Opera)存储在运行浏览器的硬盘(或云计算机)上的某个地方的数据。因此,要获取它们,您需要在本地破解Opera的执行、库和/或数据文件,这很难。最简单的方法是应用客户端脚本,即JavaScript

比你更感谢你的回答。我不明白的是,为什么我们需要一个JavaScript解释器。是的,我知道存储在本地存储器中的数据由JavaScript在本地读取和使用,但这并不一定意味着数据本身被保存为必须“解释”的JavaScript代码。那么,为什么我们需要一个解释器呢?@Roman,在JavaScript解释器下我指的是JavaScript_引擎,它在客户端执行JS并获取本地存储内容。
for (var i = 0; i < localStorage.length; i++){
    key=localStorage.key(i); 
    console.log(key+': '+localStorage.getItem(key));
}
Array.apply(0, new Array(localStorage.length)).map(function (o, i) 
   { return localStorage.key(i)+':'+localStorage.getItem(localStorage.key(i)); }
)