我想从 URL 下载页面,很简单。但是在第一页我必须登录,就像我通常从普通浏览器一样。但是 HTTrack 正在从第一页下载,因为它无法使用我的 cookie 或登录。
我有什么办法解决这个问题吗?
这个问题是在 2013 年提出的,所以我不知道当时 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
尝试在 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,然后他们才会让您登录。