WWW::机械化和 Cookie
我使用 WWW::Mechanize::Shell 来测试东西。 由于我没有成功登录到我想要抓取的网站,我想我将通过 WWW::Mechanize::Shell 具有的“cookie”命令使用该特定网站的浏览器 cookie(chrome 或 firefox)。
问题是,Cookies通常存储在单个文件中,这不好,如何获取仅针对该特定站点的cookie?
I use WWW::Mechanize::Shell to test stuff.
Since I didn't managed to sign in on a web site I want to scrape, I thought I will use the browser cookie (chrome or firefox) for that specific website with the 'cookie' command WWW::Mechanize::Shell has.
The question is, Cookies usually stored in a single file, which is not good, how to get a cookie for only this specific site?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为什么将 cookie 存储在文件中不好?
由于 WWW::Mechanize 是建立在 LWP::UserAgent,您可以像在 LWP::UserAgent。您可以将 cookie jar 制作为文件或内存中的哈希值。
如果您不想将 cookie 保存在文件中,请在构造 mech 对象时使用空哈希引用:
如果您想使用新文件,请创建一个新的 HTTP::Cookies 对象:
如果您想加载特定于浏览器的 cookie 文件,请使用正确的模块:
如果您根本不需要 cookie ,显式使用 undef:
所有这些都在文档中。
Why isn't storing cookies in a file good?
Since WWW::Mechanize is built on top of LWP::UserAgent, you handle cookies just like you do in LWP::UserAgent. You can make the cookie jar a file or an in-memory hash.
If you don't want to save the cookies in a file, use an empty hash reference when you construct the mech object:
If you want to use a new file, make a new HTTP::Cookies object:
If you want to load a browser specific cookies file, use the right module for it:
If you want no cookies at all, use undef explicitly:
All of this is in the docs.
HTTP::Cookies::Netscape
,HTTP::Cookies::Microsoft
加载您现有的浏览器 cookie。HTTP::Cookies::Netscape
,HTTP::Cookies::Microsoft
load your existing browser cookies.