0

学校のスケジュール検索WebページからHTMLを取得できるスクリプトを作成しようとしています。ブラウザを使用してWebページにアクセスすると、通常どおりWebページにアクセスできますが、cURLを使用してWebページを機能させようとすると、リダイレクトされたページからHTMLが取得されます。私が変更したとき

CURLOPT_FOLLOWLOCATION

trueからfalseまでの変数で、ヘッダーが送信された空白のページのみを出力します。

参考までに、私のPHPコードは

<?php
$curl_connection = curl_init('https://www.registrar.usf.edu/ssearch/');

curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($curl_connection, CURLOPT_HEADER, true);
curl_setopt($curl_connection, CURLOPT_REFERER, "https://www.registrar.usf.edu/");

$result = curl_exec($curl_connection);

print $result;

?>

cURLからHTMLを取得しようとしているWebサイトは、https: //www.registrar.usf.edu/ssearch/またはhttps://www.registrar.usf.edu/ssearch/search.phpです。

何か案は?

4

1 に答える 1

3

さらに2行追加しました。これにより、Sheduleのページをスクレイピングしようとしたときにリダイレクトするかどうかを決定するCookieが保存されます。

$curl_connection = curl_init();
$url = "https://www.registrar.usf.edu/ssearch/search.php";
curl_setopt($curl_connection, CURLOPT_URL, $url);
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($curl_connection, CURLOPT_COOKIEJAR, 'cookie.txt');//cookiejar to dump cookie infos.
curl_setopt ($curl_connection, CURLOPT_COOKIEFILE, 'cookie.txt');//cookie file for further reference from the site
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl_connection, CURLOPT_HEADER, true);
curl_setopt($curl_connection, CURLOPT_REFERER, "https://www.registrar.usf.edu/");
$result = curl_exec($curl_connection);
echo $result;

また、私はまだ誰もURLを入れているのを見たことがcurl_initありません。

これがクッキーです:

# Netscape HTTP Cookie File
# http://curl.haxx.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.registrar.usf.edu   FALSE   /   FALSE   0   PHPSESSID   eied78t0v1qlqcop0rdk214361
www.registrar.usf.edu   FALSE   /ssearch/   FALSE   1336718465  cookie_test cookie_set

動作していないカールをデバッグしたい場合は、最初var_dump(curl_getinfo($curl_connection));にチェックしてください。 curl_error($curl_connection);

于 2012-05-09T06:41:19.193 に答える