w3m その8 (738レス)
前次1-
抽出解除 レス栞

582
(3): 2017/12/07(木)12:48 AAS
>>580 俺のところもなるわ。

HTMLのソースを見ると当該部分は
<a href="/admin/serial/01/ubuntu-recipe/0019?page=2" rel="next">
となっているから、hrefのリンク先が '/' で始まってると
w3mはローカルファイルへのリンクと判断して "file://" を補うみたいね。

おそらくページ作成者はサーバのルートからの絶対アドレスとして
"外部リンク:gihyo.jp が補われると想定して書いてるのだと思う。
実際に "外部リンク:gihyo.jp で次のページが見られるし。

HTMLの文法としてどちらが正しいのか知らんけど、とりあえず現象の分析まで。
585
(1): 582 2017/12/07(木)17:58 AAS
hrefの先頭が '/' の場合にどう解釈すべきか、は RFC 3986 に出てるらしい。
日本語訳もウェブ上で見つけたんだが、さっぱり分からん。

ネット上での議論を見ると、先頭の '/' はリンク元のファイルがある
ホストやサイトでの絶対アドレスとして扱うみたい。
というわけで技評さんのページのリンクの書き方は正当のようだ。

w3m のソースだと url.c の parseURL() や parseURL2() のあたり、
これがまた複雑で…。
586: 580 2017/12/07(木)18:26 AAS
>>582,584,585
なるほど…と思ってよく見たら、これサイト側のベースURLの指定が間違ってるのか
理想: <base href="外部リンク:gihyo.jp />
現状: <base href="/" />
サイト側のミスっぽいけど、w3mも機転が足りてない感じがする

>>584
utf8版から入ると eucのマニュアルページを読むのが最初の試練だった気が

>>581
それは、debianなのか、fedoraなのか、freebsdなのか?
587: 582 2017/12/07(木)20:07 AAS
<head> 〜 </head> の <base href="..."> には気づかなかった。
確かに問題のページでは href="/" になってるのが直接の原因みたいね。

手元のApacheと合わせて試したところ、
<base href="外部リンク:ServerName のようにサーバを正しく指定するか
あるいは <base href="..."> を一切書かなければ
w3m でも <a href="/dir/file.html"> のリンクを期待通りにたどれる。

<base href="/"> と書いてしまうと、ローカルの
file:///dir/file.html を読もうとする。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.022s