【问题标题】:HTTrack possible using cookiesHTTrack 可以使用 cookie
【发布时间】:2013-12-03 22:14:42
【问题描述】:

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

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

【问题讨论】:

    标签: php httrack


    【解决方案1】:

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

    说明:

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

    【讨论】:

      【解决方案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,然后他们才会让您登录。

      【讨论】:

      • 你能帮我更多吗?有一个或多个例子?假设我想要facebook.com/messages
      • 缺少 ',现已添加。
      • 多个位置。问题? cookie 是否被写入目录?如果没有,则存在权限问题。此外,如前所述,您通常需要在登录之前先加载页面以设置 cookie。使用 FF 的 HTTP Live Header 之类的东西来查看发生了什么。
      • Httrack(现在)支持 cookie。查看我的答案以获取更多信息。
      猜你喜欢
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 2021-09-20
      • 2011-02-22
      • 2015-03-19
      • 2010-12-02
      相关资源
      最近更新 更多