重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

https://transit.yahoo.co.jp/
ここのHTMLソースをsample.htmに保存し、ローカル(Winデスクトップ)で開いて駅名いれましたが、検索を実行すると「ファイルがみつかりません」となるのはなぜしょうか。

出発、到着、経由、検索の4つの入力フォーム部品だけを取り出したHTMLを書き出して、サーバーサイドに処理を渡して、検索結果はhttps://transit.yahoo.co.jp/に表示させるということをやりたいです。

A 回答 (2件)

こんにちは



ご質問のような手段をとる理由がわかりませんけれど・・・
(HTMLファイルの代わりに、リンクファイルを置いておけば、ダブルクリックでほぼ同じことが実現できるので)


>「ファイルがみつかりません」となるのはなぜしょうか。
リクエストされたURLに該当するファイルが無いということでしょうね。

サイトの仕組みをちゃんと見てはいませんけれど、ご提示のサイトのForm要素にはaction指定がない状態なので、スクリプトでいろいろ処理していると思われます。
単純に送信先が見つからない場合もあるでしょうし、中間チェックに必要なファイルが見つからないということも考えられます。

原因としては、それらのURLが相対アドレスになっている可能性が高いと思いますので、きちんと修正すれば動作すようになるかも知れません。
‥というか、オリジナルのソースはほぼスクリプトのみなので、表示内容そのものもスクリプトから作成しているように見受けられますね。


とは言え、
>4つの入力フォーム部品だけを取り出したHTMLを書き出して、
>サーバーサイドに処理を渡して~~
ご提示のサイトは、フォームデータをGET送信で送っているようですので、URLのクエリ部に引数として渡せばレスポンスしてくれる仕組みになっているようです。
(幸い、サーバ側で送信元のチェックなどは行っていないと思われます)

ですので、わざわざHTMLソースをコピーしなくても、好きなように4つの部品を作成して、method="GET"で送信すれば結果を表示できます。
(表示中のDOMをコピーしても良いですが、それにしてもご質問内容からすれば不要部分ばかり多すぎるように思われます。)

簡単なHTMLで試してみたところ、クエリが「出発、到着、経由」だけでも表示してくれるようですね。
実際のパラメータはかなりいろいろあるので、省略した場合に、それらがどのように評価されているのかはわかりませんけれど。
(日時は、現在日時になるようです)
安全側をとるなら、type="hidden"で他のパラメータの主要なものを設定しておくという方法も考えられるでしょう。


※ 上記内容は、あくまでも現時点でのサイトの動作に基づいていますので、今後の変更などがあれば、どうなるのかはわかりません。
    • good
    • 0
この回答へのお礼

ご返事ありがとうございます。

>好きなように4つの部品を作成して、method="GET"で送信すれば結果を表示できます。


え?!と思って以下のHTMLで実現できました。


<html>
<body>
<form action="https://transit.yahoo.co.jp/search/result" method="get">
<input type="text" name="from" placeholder="出発"><br>
<input type="text" name="to" placeholder="到着"><br>
<input type="text" name="via" placeholder="経由"><br>
<button type="submit">検索</button>
</form>
</body>
</html>


なお、

>ご質問のような手段をとる理由がわかりませんけれど・・・

ブラウザを起動時のHOME(最初に表示されるスタートページ)に、自作HTMLのリンク集を指定しています。
このファイル自体にhttps://transit.yahoo.co.jp/のリンクを張ってもいいのですが、
その最初の画面に出発、到着、経由、検索ボタンがあればワンクリック節約できる、という好奇心からの質問でした。

お礼日時:2025/01/24 16:53

HTMLソース中のリンク先やformのアクションのURL構成が相対的なものになっているからだと思います。


この理由で渡したいサーバサイドのURLではなく
保存したHTMLファイルのあるパスを基準にしたリンク先やアクション先に渡そうと動き「そんなファイルないよ」とブラウザがエラーを表示しているものと思われます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます、具体的アクションを指す部分を探してみます。

お礼日時:2025/01/24 14:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A