PerlでBingの検索結果のソースを取得したいと思っています。

例えば、
http://www.bing.com/search?q=%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89&go=&form=QBRE&filt=all
のURLの検索結果を下記プログラムで取得しようとしましたが、「400 Bad Request」になってしまいます。
GoogleやYahooは正常に動作しています。
どこに問題があるのか分かりますでしょうか?


$domain = 'www.bing.com';
$file = '/search?q=%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89&go=&form=QBRE&filt=all';

$addr = (gethostbyname("$domain"))[4];
$name = pack("S n a4 x8", 2, 80, $addr);
socket(S, 2, 1, 0);
connect(S, $name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET $file HTTP/1.0\r\n\r\n";
undef $data;
while (<S>) {
$_ =~ s/[\r\n\t\f]//g;
$data .= $_;
}
close(S);

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2011/04/03 17:57:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4974ベストアンサー獲得回数2154

ポイント60pt

Bing は、Host ヘッダをチェックしてるみたい。

GET /search?q=%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89&go=&form=QBRE&filt=all HTTP/1.1
Host: www.bing.com

こういうリクエストを出せば、結果を取得できます。

id:uwao

有り難うございました。

ばっちりです。

正常に取得できました。

2011/04/03 17:56:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません