php HTTrack可能使用cookies

68de4m5k  于 2023-01-24  发布在  PHP
关注(0)|答案(2)|浏览(203)

我想从一个URL下载页面,很简单。但是在第一页我必须登录,就像我通常在普通浏览器上做的那样。但是HTTrack是从第一页下载的,因为它不能使用我的cookie或登录。
有什么办法能让我避开吗?

9vw9lbht

9vw9lbht1#

这个问题是在2013年提出的,所以我不知道当时Httrack是否支持Cookie,但现在它肯定支持。
说明:
1.使用Firefox或Chrome浏览器登录您的网站,然后查看登录cookie。
1.在您下载网站的Httrack文件夹中,应该有一个名为cookies.txt的文件,如果没有,请创建一个。
1.将cookie信息从浏览器复制到此文件。您可能还需要将用户代理从浏览器复制到Httrack配置。

  • 如果你不知道怎么看你的饼干,很简单...

您可以安装Get cookies.txt这样的扩展来导出cookie,也可以使用开发者工具,如下所示:
火狐浏览器:F12 -> Storage -> Cookies
chrome :F12 -> Application -> Storage -> Cookies
适用于Httrack的cookie.txt示例:
(We必须使用制表符而不是空格。StackOverflow正在自动将制表符转换为空格...)

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

pqwbnv8z

pqwbnv8z2#

尝试在PHP中使用cURL:
http://php.net/manual/en/book.curl.php
有一些 Package 器,例如:
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,然后他们才会让你登录。

相关问题