使用 python 获取网络服务器设置的本地存储数据

Get Local storage data set by a web-server using python

我正在测试我的网站以充斥其分析 api 调用。由于我的站点使用本地存储来识别客户端,因此我需要访问本地存储。

我可以使用此代码访问 python 中的 cookie:

import cookielib
import urllib2

cookies = cookielib.LWPCookieJar()
handlers = [
    urllib2.HTTPHandler(),
    urllib2.HTTPSHandler(),
    urllib2.HTTPCookieProcessor(cookies)
    ]
opener = urllib2.build_opener(*handlers)

def fetch(uri):
    req = urllib2.Request(uri)
    return opener.open(req)

def dump():
    for cookie in cookies:
        print cookie.name, cookie.value

uri = 'http://localhost:3000'
res = fetch(uri)
dump()

res = fetch(uri)
dump()

# save cookies to disk. you can load them with cookies.load() as well.
cookies.save('mycookies.txt')

如何访问 python 中的本地存储数据?

本地存储特定于浏览器。

Local Storage is a way to store persistent data using JavaScript. It should be used only with HTML5 compatible web browser. Local storage - according to stack overflow tag definition

要访问 python 中的本地存储,需要 HTML5 兼容的浏览器 python API。

costales 提出了 Chrome 的解决方案,此处:

How to read/modify a local file of HTML5 Local Storage from Python?

它利用了 Chrome 和 Opera 使用 "SQLite format 3" 作为 Web 存储(a/k/a 本地存储,或 DOM 存储)这一事实。在 Windows 10 Chrome 下,当前将其 Web 存储文件保存在此文件夹中:

"%LOCALAPPDATA%\Google\Chrome\User Data\Default\Local 存储\"

歌剧应该差不多。 (旧 Opera 使用 XML 文件,但最新版本的 Opera 基本上是 Chrome / Chromium 的分支。)

Firefox 类似,不同之处在于 Firefox 似乎对所有网页的所有 Web 存储使用一个巨大的 SQLite 数据库;在这里查看 Hugh Lee 和 Kevin Hakanson 的回答:

Where does Firefox store javascript/HTML localStorage?

costales 的解决方案是简单地导入 sqlite3,然后读取 Chrome 的本地存储文件。好甜!