Headless Chrome - 共享凭证

Headless Chrome - Sharing Credentials

我想自动打印多个 URL。 Headless Chrome 在这里工作得很好...

chrome --headless --disable-gpu --print-to-pdf="C:\tmp\test.pdf" https://time.com/

除了我想要 运行 这个真正的网站需要身份验证。我希望 headless Chrome 会与 Chrome 共享 cookie,因此所有内容都将是 hunky-dory。但我错了。打印显示 JavaScript cookies 被禁用,所以我无法打印我想要的内容。

如果有人能帮我解决这个问题,我将不胜感激!非常感谢!!

我通过特定的 cookie 存储路径为 chrome 无头(命令行)管理 cookie。
首先,Chrome 使用 sqlite 文件管理它的 cookie,它在其中加密 cookie 值并存储。
我们将使 chrome 无头 不要使用选项

加密其 cookie
--disable-cookie-encryption

并指定 chrome 将其 cookie 数据库文件存储在何处

--user-data-dir={exist_folder}

sqlite数据库一般会存放在.

{exist_folder}/Default/Cookies

打开数据库,然后使用您喜欢的数据库工具运行 插入或更新 cookies table。在我的例子中是 LiteDB,php.
每行将有 host_key 作为域,名称作为 cookie 的名称,值作为 cookie 值。示例:

|host_key|+ name |+++++++++++ value ++++++++++++++++++|
|time.com|_pubcid|c2017f65-0c2c-49e0-93e4-e9b8b34f2879|

现在 运行 chrome headless with prepared cookies 的总命令是。

chrome --headless --disable-gpu --disable-cookie-encryption --user-data-dir="{exist_folder}" --print-to-pdf="C:\tmp\test.pdf" https://time.com/