- PR -

Webページを取得できない

投稿者投稿内容
rei
会議室デビュー日: 2008/05/06
投稿数: 16
投稿日時: 2008-05-16 11:01
参照元記事のwebreqres1.vbを参考にWebページを取得することを考えています。

しかし、下記のページは取得できません。

正確には、IEにアドレスを直接入力した場合は、目的のページが開くのですが、
上記webreqres1.vbのようなプログラムからだと、”例外ページ”を取得します。

何故できないのか、どうしたらできるのか教えてください。

<取得できないページ>
http://www.chotatsu.e-aichi.jp/ebidPPIPublish/EjPPIj?Nendo=2008&KikanNO=23000&ChoutatsuCD=00&BukyokuNO=23000-9-371010&KoujiSyubetu=&mojisel1=&kkselect=AND&mojisel2=&ejMaxDisplayRowCount=500&ejParameterID=EjPPJ01&ejProcessName=findList&getStpos=0&AllhitSize=0

ちなみに、パラメータより前の部分(http://www.chotatsu.e-aichi.jp/ebidPPIPublish/EjPPIj)を同様に試した場合は、プログラムが下記のエラーを返します。

'System.Net.WebException' の初回例外が System.dll で発生しました。

また、IEからアドレスを直接入力した場合は、
「自動で遷移しない場合はここをクリック」というメッセージが表示された後、
Webページが表示されます。(これも原因のひとつでしょうか?)

以上、よろしくお願いします。

開発環境:
 WindowsXP pro
 VisualStudio2008
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-05-16 12:42
なにかrequest headerの値を使ってるんでは?
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2008-05-16 12:53
確かにHttpWebRequestからだとServletかなにかのエラーになりますね。。。
ちなみにFirefoxで正常に表示できた時の、RequestとResponseです。

コード:

[Request]
Host=www.chotatsu.e-aichi.jp
User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Accept=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language=ja,en-us;q=0.7,en;q=0.3
Accept-Encoding=gzip,deflate
Accept-Charset=Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive=300
Connection=keep-alive
Referer=http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=44802&forum=7
Cookie=JSESSIONID=92E77809F678FB48F57A4498B892F28E.WUPPIPublish_001

[Response]
Status=OK - 200
Date=Fri, 16 May 2008 03:54:30 GMT
Server=FJapache/6.0 (Unix)
Content-Type=text/html; charset=Windows-31J
Connection=close
Transfer-Encoding=chunked



[ メッセージ編集済み 編集者: burton999 編集日時 2008-05-16 12:55 ]
rei
会議室デビュー日: 2008/05/06
投稿数: 16
投稿日時: 2008-05-19 10:23
時間を割き、アドバイスをありがとうございます。

ただ、まだ解決できずにおります。
引き続きよろしくお願いします。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-05-19 11:15
引用:

mioさんの書き込み (2008-05-16 12:42) より:
なにかrequest headerの値を使ってるんでは?


というヒントを参考に、
コード:
            WebRequest req = WebRequest.Create(url);


これを、
コード:
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
            req.UserAgent = "Mozilla/5.0";


こんな風に直せば、とりあえず取得はできます。
rei
会議室デビュー日: 2008/05/06
投稿数: 16
投稿日時: 2008-05-19 11:50
rainさん、ありがとうございます!取得できました。
ここに投稿する前からずーーっと行き詰っていたことなので、
感激で、なんとお礼を申し上げていいのか分からないほどです。

それから、mioさんのアドバイスが理解できなかった自分を
恥ずかしく思います。
もっと勉強、頑張ります。

それから、burton999さんも貴重な時間を私のために割いて
くださり本当に感謝しています。
(User-Agent=Mozilla/5.0がヒントになったのでしょうか。
これに関しても無知でせっかくのアドバイスに対して、すいません。)

本当にありがとうございました。

[ メッセージ編集済み 編集者: rei 編集日時 2008-05-19 11:55 ]
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-05-19 14:10
引用:

reiさんの書き込み (2008-05-19 11:50) より:

それから、burton999さんも貴重な時間を私のために割いて
くださり本当に感謝しています。
(User-Agent=Mozilla/5.0がヒントになったのでしょうか。
これに関しても無知でせっかくのアドバイスに対して、すいません。)


書き忘れていてすみませんが、burton999さんの回答も参考になりました。
おそらくどちらかが欠けていたら、私には答えられなかったと思います。

ちなみに、User-Agentに指定する内容が "Mozilla/5.0" でよいかどうかは私にはわかりません。
取得したものをどう使うかによるかもしれませんし、あまり気にしなくてよいのかもしれません。
rei
会議室デビュー日: 2008/05/06
投稿数: 16
投稿日時: 2008-05-19 14:35
追記にも重ねて感謝いたします。
ありがとうございます。

「Mozilla/5.0」について、恥ずかしながら知りませんので、
これから勉強したいと思います。

スキルアップ/キャリアアップ(JOB@IT)