6

我想从 URL 下载页面,很简单。但是在第一页我必须登录,就像我通常从普通浏览器一样。但是 HTTrack 正在从第一页下载,因为它无法使用我的 cookie 或登录。

我有什么办法解决这个问题吗?

4

2 回答 2

12

这个问题是在 2013 年提出的,所以我不知道当时 Httrack 是否支持 cookie,但现在肯定支持。

指示:

  1. 使用 Firefox 或 Chrome 登录您的网站,然后查看登录 cookie。
  2. 在您下载网站的 Httrack 文件夹中,应该有一个名为 cookies.txt 的文件,如果没有,请创建一个。
  3. 将 cookie 信息从您的浏览器复制到此文件。您可能还必须将用户代理从浏览器复制到 Httrack 配置。
  • 如果您不知道如何查看您的 cookie,这很简单……
    您可以安装扩展程序或使用开发人员工具,如下所示:
    Firefox:F12 -> Storage -> Cookies
    Chrome:F12 -> Application -> Storage -> Cookies

Httrack 的 cookie.txt 示例:

www.httrack.com TRUE    /       FALSE   1999999999  foo bar
www.example.com TRUE    /folder FALSE   1999999999  JSESSIONID  xxx1234
www.example.com TRUE    /hello  FALSE   1999999999  JSESSIONID  yyy1234

参考:http ://httrack.kauler.com/help/Cookies

于 2019-10-12T12:17:20.870 回答
-2

尝试在 PHP 中使用 cURL:

http://php.net/manual/en/book.curl.php

对此有包装器,例如:

http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading

使用以下选项:

编辑:更具体,未经测试

从以下位置下载课程:

http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading

require_once( 'CURL.php' ); //Change this to whatever that class is called in the above
$curl = new CURL();  
$curl->retry = 2;  
    $opts = array(
    CURLOPT_USERAGENT => 'Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20091020 Linux Mint/8 (Helena) Firefox/3.5.3',
    CURLOPT_COOKIEFILE  => 'fb.tmp',
    CURLOPT_COOKIEJAR   => 'fb.tmp',
    CURLOPT_FOLLOWLOCATION  => 1,
    CURLOPT_RETURNTRANSFER  => 1,
    CURLOPT_SSL_VERIFYHOST  => 0,
    CURLOPT_SSL_VERIFYPEER  => 0,
    CURLOPT_TIMEOUT     => 20
);
$post_data = array(  ); //put your login POST data here
$opts[CURLOPT_POSTFIELDS] = http_build_query( $post_data );
$curl->addSession( 'https://www.facebook.com/messages', $opts );  
$result = $curl->exec();  
$curl->clear();
print_r( $result );

请注意,有时您需要先加载页面,设置 cookie,然后他们才会让您登录。

于 2013-12-03T22:24:58.430 回答