自動でページを取得するのに、
もっとも都合がいいのはwgetを使うことです。
wgetでうまくいったときの状況が再現できていないのであれば、
HTTP的に、wgetで同様の事ができていないのでしょう。
手動でうまくいったときと、
wgetでうまくいかなかったとき、
それぞれについてtcpdumpなどで
HTTPリクエストを取得し、
リクエストヘッダがどのように異なるか調べてみてはどうでしょう。
何が違うかわかれば、wgetのオプションで調整ができるかもしれません。
wgetは、-dオプションをつけるとリクエストを見ることができます。
URLはダミーです。
GET -C username:password http://www.example.com/some/where/ GET http://username:passowrd@www.example.com/some/where/
どちらでもいけます。
パスワードモロ見えですのでシェルスクリプト等にするのであればファイルパーミッションにはご注意を。
URLはダミーで失礼します。
GET でやりたいのです。wget だと異なるものが取得されます。