0

在我开始提问之前,我想说一个类似的问题帮助我通过了初始登录。我的问题如下所述。

我正在尝试镜像一个网站。这是我有帐户的东西。我使用 wget 作为我选择的工具。我尝试了 curl,但发现虽然提交帖子数据很容易,但 wget 更适合手头的任务。

该网站有一个重定向到的初始登录页面。在此之后,您可以访问网站上的所有内容。这么长时间后登录确实超时,但就是这样。

使用下面的 wget 命令,我能够成功保存我的 cookie、加载它们并下载所有子文件夹。然而,我的问题是每个孩子都有一个相同登录页面的 index.html。就像 cookie 在根文件夹中运行良好,但在它下面什么都没有。

我使用的命令是:

wget http://site.here.com/users/login --save-cookies cookies.txt --post-data 'email=example@test.com&password=*****&remember_me=1' --keep-session-cookies --delete-after
wget http://site.here.com/ --load-cookies cookies.txt --keep-session-cookies -r -np

请注意,后数据变量/ID 是不同的,我必须下载登录页面才能查看它们是什么。

其次,请注意,如果我没有将 remember_me 值设置为 1,那么 cookies.txt 会有所不同。

没有 remember_me=1

.here.com    TRUE    /   FALSE   numbershere   CAKEPHP   garbagehere

与 remember_me=1

site.here.com  FALSE   /   FALSE   numbershere   CakeCookie[rememberme]   garbage
.here.com    TRUE    /   FALSE   numbershere   CAKEPHP   garbagehere

结果是前者只会下载登录页面,而后者只会下载所有子文件夹,只有包含登录索引的子文件夹,仅此而已。

我有点卡住了,我对 wget 和 http 的经验非常有限。你会怎么做才能克服这个问题?为每个孩子生成一个 cookie?您将如何自动化而不是手动为每个孩子创建一个 cookie 文件?

PS:如果这反映了我给出的答案,我正在使用 Linux。

4

1 回答 1

0

弄清楚了。有点儿。

当我使用上述选项时,我得到所有孩子。如果我然后 wget 每个孩子(再次使用上面的选项)并确保以“/”结尾来指定文件夹,那么它可以工作。

不知道为什么会有这样的行为,但确实如此。当我这样做时,抓住孩子,孩子或类似的东西没有问题。

于 2013-10-01T17:54:10.350 回答