w3m その8
w3mからYouTubeなんかの動画をmplayerのウィンドウが開かないようにxtermウィンドウ内で見るには、 youtube-dlとpythonとmplayer2のインストール以外に何が必要でしょうか? というかそういうことが可能でしょうか? 何かスクリプトでも書かなければダメでしょうか? 自分が参考にしたサイトは以下のところです。 http://qiita.com/tigberd/items/594c27426c5580450bf2 ちなみにOSはLubuntu15.10です。 youtube-dl でダウンロードして mplayer で再生すれば フレームバッファコンソールでもYoutube動画を観られるのね。 あとは自動再生のCGIか何かを組み込むだけじゃないか。 >>555 の問題は使用環境が違うので力になれない。済まぬ。 557>> いえいえお心遣い誠に感謝します。 とりあえず報告です。 リンク先のおそらくFFmpegの項の「インストール方法」を試せばいいと思ったんで、 Step0はなんとか進んで、Step1の ./configure --enable-sixel-graphics を実行したら configure: error: Unable to successfully link Athena library (-lXaw) with test program と表示されました。 他にもホームディレクトリには「.Xresources」はなく「.Xauthority」ならありました。 リンク先は興味深い内容がたくさんあって他のOSで試してみようと思います。 紹介してくださってありがとうござます。 少なくともさっきやってみたら普通に見えたよ。 自分ならstrace/trussでシステムコールレベルでどこで詰まってるか とりあえず調べてみるかなあ。 あとは新規ユーザーを作って.w3mない状態で試してみるとか、使っているなら プロキシ周りを疑ってみるとか。 >>559 俺の環境(フレームバッファコンソール、fbterm)でも見れない。 loadLink(): Can't load http://docs.python.org/3.5/library/urllib 別のブラウザだと表示されるけど、アドレスバーには https://docs.python.org/3.5/library/urllib.html と表示される。"http" が "https" に変わり、末尾に ".html" が追加。 で、このURLを指定すればw3mでも見られる。 サーバから返送されたリダイレクトのレスポンスを w3mが拾い損なってる感じかな。よく分からんけど。 あ、自分はw3m/0.5.3+debian-19で試しました。 ちゃんとhttpsにリダイレクトされてます。 debianパッケージのソースはあちこちにあるパッチや独自のfixを含んでいて 実質一番アクティブなforkみたいな感じなので、そっちを使う方がいいかも。 https://anonscm.debian.org/cgit/collab-maint/w3m.git 一応sourceforge側に定期的にそのへん報告もしてるしメンテナ自身sourceforge のw3mに参加を希望しているけどずっと無反応なのでこんな状態が続いている。 MigemoOFFしてますが、正規表現で検索が出来ません……よくわかりません 日付探そうとして\d{4}してもnot foundで、[0-9]{4}とかw\{3\}とかしてみたんですが…… [0-9][0-9][0-9][0-9]なら流石に4桁の数字ヒットします Debian Sid i386, w3m 0.5.3-29 使える正規表現の一覧とかありませんか? w3mの正規表現はどうもaitoさんが自前で作ったものっぽい。 \dみたいなリッチな正規表現は未対応のようだ。一覧もなさそう。 sed, grepあたりで使える正規表現を前提にしてるんじゃないかな。 ローカルcgiってどうやって使うの?ディレクトリの設定ちゃんとしてるのに、ソースが表示されてしまう。 /foo/bar/hoge.cgi があるとして、これを実行したいなら設定(.w3m/config)を cgi_bin /foo/bar として以下にアクセスすれば動かないかな? 実行属性は必要。 file:///cgi-bin/hoge.cgi 最近 mingw にインストールしてみたんですがヘルプが表示されないっていう問題がありました まずヘルプの CGI が Perl の構文チェックで警告がでるため、そこで止まってしまい何も表示されないのと それを解決しても日本語ヘルプが表示されず、これは生成された w3mhelp-funcdesc.ja.pl に問題があったためでした 日本語が記述されている部分は euc-jp で書かれているため生成時にうまく処理できなかったのかもしれません gnupackで試したところやはりヘルプは表示されないのでcygwin版も同じ状態じゃないかと思います すまぬ。ここ2週間ほど(SNS業者のアイコンが表示されるようになった頃から) 投稿できなくなってたので >>568 の修正を施して、この場で試してしまった。 確かに不適切だね。 で、分かったこと。板によって投稿できたりできなかったりする。 この板は >>568 の修正の有無によらず投稿できた模様。 別の板では今でも書き込めない(萌えニュースとか)。 [書き込む] ボタンを押したときに Unknown URI: /test/bbs.cgi と表示される、つまりホスト部 ○○.2ch.net が消失するためらしいが…。 アップデート、どこにある? スレッド先頭のリンク先とか、googleさんの「過去○週間」で見当たらない。 sourceforgeに無いのなら来てないんじゃね? 別のアプリケーション関連のスレッドへ投稿するつもりが 送信先を間違えるか何かして、ここに載っただけ? なんかここ↓のハイパーリンク『次のページ』が踏めない ttp://gihyo.jp/admin/serial/01/ubuntu-recipe/0019 というか、URL が file:/// に化ける謎 Androidのフォントが変わってもうた。 termuxという端末アプリ上で、 pkg install w3m と、アプリのyumかaptgetかのw3mをインストールし動作させると、Android全体のフォント体が変わってもうたよ。なんなの。 >>580 俺のところもなるわ。 HTMLのソースを見ると当該部分は <a href="/admin/serial/01/ubuntu-recipe/0019?page=2" rel="next"> となっているから、hrefのリンク先が '/' で始まってると w3mはローカルファイルへのリンクと判断して "file://" を補うみたいね。 おそらくページ作成者はサーバのルートからの絶対アドレスとして "https://gihyo.jp/" ; が補われると想定して書いてるのだと思う。 実際に "https://gihyo.jp/admin/sefial..." ; で次のページが見られるし。 HTMLの文法としてどちらが正しいのか知らんけど、とりあえず現象の分析まで。 w3m の紹介ページが w3m で満足に読めないとかなんという典型的な皮肉 Lynx ではリンク先が絶対URLでない旨の警告を受けたものの読めたんで w3m もそんな感じのユーザーインタフェースにすればいいのにね。 hrefの先頭が '/' の場合にどう解釈すべきか、は RFC 3986 に出てるらしい。 日本語訳もウェブ上で見つけたんだが、さっぱり分からん。 ネット上での議論を見ると、先頭の '/' はリンク元のファイルがある ホストやサイトでの絶対アドレスとして扱うみたい。 というわけで技評さんのページのリンクの書き方は正当のようだ。 w3m のソースだと url.c の parseURL() や parseURL2() のあたり、 これがまた複雑で…。 >>582 ,584,585 なるほど…と思ってよく見たら、これサイト側のベースURLの指定が間違ってるのか 理想: <base href="https://gihyo.jp/" ; /> 現状: <base href="/" /> サイト側のミスっぽいけど、w3mも機転が足りてない感じがする >>584 utf8版から入ると eucのマニュアルページを読むのが最初の試練だった気が >>581 それは、debianなのか、fedoraなのか、freebsdなのか? <head> 〜 </head> の <base href="..."> には気づかなかった。 確かに問題のページでは href="/" になってるのが直接の原因みたいね。 手元のApacheと合わせて試したところ、 <base href="http://ServerName/" ;> のようにサーバを正しく指定するか あるいは <base href="..."> を一切書かなければ w3m でも <a href="/dir/file.html"> のリンクを期待通りにたどれる。 <base href="/"> と書いてしまうと、ローカルの file:///dir/file.html を読もうとする。 原因自体はそれで確定みたいですね ただ、C言語なんて長いこと触ってないし、複雑過ぎるしで、自分にゃ手に負えんです。 暫定で baseurl を潰すだけで良いなら、 $ ag 'buf->baseurl' *.c file.c の case HTML_BASE: ブロックの中あたりですかね? ……と当てずっぽうに言ってみる てか、すまん 解析用にparse結果を書き出す関数を作ってみた 問題箇所(=buf->baseURL->hostの設定箇所)は、今の所特定できず こんなことしなくても、正規なデバッグ方法がちゃんと用意されてそうな気も /* w3mソース [proto.h] 末尾に追加 */ extern void clear_mylog(); extern void printf_mylog( char *fmt, ... ); extern void dump_ParsedURL( ParsedURL *p ); /* w3mソース [url.c] 末尾に追加 */ const char fn_mylog[100] = "/tmp/w3m_debug.log"; void clear_mylog(){ FILE *fp =fopen( fn_mylog,"w"); if( fp ) fclose( fp ); } void printf_mylog( char *fmt, ... ){ FILE *fp = fopen( fn_mylog, "a"); if( fp ){ va_list args; va_start( args, fmt ); vfprintf( fp, fmt, args ); va_end( args ); } } void dump_ParsedURL( ParsedURL *p ){ if( p ){ printf_mylog( " host:[%s] file:[%s] real_file:[%s]\n", p->host, p->file, p->real_file ); }else{ printf_mylog( " ParsedURL is null.\n" ); } } [dump 結果] url.c: baseURL(Buffer *buf){ ... dump_ParsedURL(buf->baseURL); ... } https://mevius.5ch.net/test/read.cgi/unix/1185784998/ へのアクセス時 → host:[mevius.5ch.net] file:[/unix/] real_file:[(null)] http://gihyo.jp/admin/serial/01/ubuntu-recipe/0019 へのアクセス時 → host:[(null)] file:[/] real_file:[(null)] ^^^^ 不具合 取り敢えずこんな感じ? ttps://pastebin.com/wtiNPhJm baseタグのhrefを解釈する時に使われているparseURL関数で 引数のurlにスキームが存在しないとそのurlが ローカルのものとして解釈されるのが原因だと思う。 lynxでは絶対URIじゃないbaseタグは無視している様なので w3mでも無視していいかなと。 >>591 おお、gihyo.jp も普通に見れるようになってますね 個人的には、 HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit) ... case HTML_BASE: ... if( p && p[0]=='/' ) break; /* この一行を追加して、invalidな <base>タグを弾く */ if (!buf->baseURL) で良いかなー、とか検討中だった スキーマの使われ方とかまだ見てないですが、利用した方がベターっぽいですね インライン画像がたまに表示されない気がするけど、気のせいだろか? もうちょっと見てみます >>592 まだ確認してませんが HTMLtagproc1 (>>591 の@@ -5066,6 +5066,8 @@)の方にも 同じことしたのが原因な気がしてきました。 該当部分が#ifdef USE_IMAGE内なので 画像表示がおかしくなるならここが原因かもしれない… そもそもスキームで判定するのがいけない、という可能性もあるので そっちの方も調べてみます。 >>591 [file.c] HTMLlineproc2body( ) case HTML_BASE: にて、 base=NULL としてしまうと、サイトの初回訪問時(=画像がキャッシュされていない状態)では、インライン画像が表示されないみたいです ParsedURL *base は、HTMLlineproc2bodya の先頭の方で、バッファの URL によって初期化されてて、NULL にしては駄目っぽい すまん、完全オリジナルじゃなくて debian の git patch をあてた方でチェックしてた… base 変数はなかった 混乱させてすまん >>591 オリジナルにこのパッチを当てた時は問題なかったです お騒がせしました(一応報告まで) テスト方法(Linux Mint serena 64bit環境) $ mkdir w3m_test; cd w3m_test $ wget https://downloads.sourceforge.net/w3m/w3m-0.5.3.tar.gz $ wget http://www.linuxfromscratch.org/patches/blfs/svn/w3m-0.5.3-bdwgc72-1.patch $ tar zxvf w3m-0.5.3.tar.gz $ cd w3m-0.5.3 $ patch -Np1 -i ../w3m-0.5.3-bdwgc72-1.patch $ patch -Np1 -i ../wtiNPhJm.txt ## ← >>591 のpatch $ sed -i 's/file_handle/file_foo/' istream.{c,h} $ sed -i 's#gdk-pixbuf-xlib-2.0#& x11#' configure $ sed -i 's#/libexec#/lib#' configure ## ← w3mimg 用に微調整 $ PKG_CONFIG_PATH="/usr/lib/openssl-1.0/pkgconfig:$PKG_CONFIG_PATH" \ LIBS="-lX11 -ldl -lXext -lz" \ ./configure --prefix=/usr --sysconfdir=/etc \ --with-migemo=cmigemo $ make $ rm ~/.w3m/w3mtmp* $ ./w3m -v http://gihyo.jp/admin/serial/01/ubuntu-recipe/0019 $ ./w3m -version w3m version w3m/0.5.3, options lang=en,m17n,image,color,ansi-color,mouse,gpm,menu,cookie,ssl,ssl-verify,external-uri-loader,w3mmailer,nntp,ipv6,alarm,mark,migemo w3mimgは、 Makefile にて、 libexecdir = ${exec_prefix}/lib w3mimgdisplay を /usr/lib/w3m/w3mimgdisplay に配置して確認 参考: ttp://www.linuxfromscratch.org/blfs/view/cvs/basicnet/w3m.html 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 2HILOH1I8V githubあたりに公式で置いてほしい… パッチが分散しすぎてorz いまはとりあえず本家が追いつくまでdebianから落としたやつがいいのかな? sixel関連のパッチの置き場所が無いのでここで質問してみたテスト いやね、0.5.3->deb系パッチ->sixelパッチ->data-urlパッチ->data-srcパッチ順番だと 本家0.5.3対象でdiff作った奴とはconflictするんで。 sf.netのアカウント持ってる人全員inactiveなのでgithubに移行のしようもないからな… おはようございます、何方か w3mでアマゾン(amazon.co.jp)のサインインは可能でしょうか? 立ち上げは w3m -cookie https://amazon.co.jp/ でconfigの方は cookie_avoid_wrong_number_of_dots cookie_accept_domains cookie_reject_domains accept_bad_cookie 0 accept_cookie 1 show_cookie 1 use_cookie 1 で試したのですが、サインインのページではパスワードinputしか表示されず 試しに入力してみると「続行するには、cookieを有効にしてください」 と表示され、サインインできません。 画像表示ONでw3m試すと以外と快適なので、可能であればそのまま商品購入したいです (現状ではFF立ち上げてサインイン→購入ボタン以下略なので) ☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、 改憲議員が3分の2を超えております。『憲法改正国民投票法』、 でググってみてください。国会の発議はすでに可能です。 平和は勝ち取るものです。お願い致します。☆☆ w3mでgmail使えないですか? サインイン出来ません。 設定とか何かあるのでしょうか? >> 602 サインインできますよ。画面の変化が遅いのでじっくり待ってみてください。 「簡易HTMLで表示」とかいうボタンを押す。 でも、実用する気になれないな。 ubntuのw3mならgmailログインできました。 でも、cygwin上でのw3mはgmailログイン出来ないんだ。。。 要求されたページは無効ですって出るし、そもそもパスワード 入れる箇所がないのよね。 # w3m -version w3m version w3m/0.5.3, options lang=en,m17n,color,ansi-color,mouse,menu,cookie,ssl,ssl-verify,external-uri-loader,w3mmailer,nntp,ipv6,alarm,mark ちなみにgmailログイン画面が下記です。 Enter your email の後のカッコの中を入力しようとすると、左下にpassword:と出ます。 One account. All of Google. Sign in to continue to Gmail [avatar_2x] Enter your email [ ] [Next] Find my account Sign in with a different account Create account 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 JPQYB 質問させてください google検索した時に左に出てくるアレ邪魔じゃないですか? greasmonkeyみたいにサイトごとにhtml弾く方法ありますか よろしくお願いします >>609 googleの件はユーザーエージェント変更で解決できました でもgitとか見てると上の方いらないので消せたら最高ですね・・・ ここ何ヶ月かw3mで5ちゃんねるに投稿できなかった。 403 Forbidden nginx/1.12.1 というエラーメッセージ。 ユーザーエージェントを調整したら書けるようになったわ。 FireFoxの新しいやつだよ、と名乗る感じ。 使わないコードページ削れるパッチ Sc_738476.gz 試しにksx1001,uhc,johab取り除いた所1275408->1182128バイトへ 書ける板と書けない板が生じてる模様。 プログラム板には書けるんだが、自作PCやハードウェアは Forbidden になる。 このスレッドはどうだろうか。 Google の表示がおかしい。 直接の原因は a 要素の中に div 要素があるから、つまり HTML5 だからということかなあ。 とはいえ、リンクがいつものテキストではなくテキストの手前にあるというだけだから リンクが判りにくいけど慣れれば平気ということになるのかな。 Google 自体は w3m じゃなくてもいいけどその先を w3m で見たいということも あるんだけどな。 なんか、このままの方が快適じゃないかという気がしてきた。 ESC-m のメニューは使い物にならないけど元々使ってないし。 >>616 昨日これに気がついたけどUser-Agentを色々いじると元のようになるのもあった Mozilla/4.0だけとか 他にも5.0でもあったけどどれか分からなくなった 今はjavascript 有効ブラウザじゃないとgmailログイン出来ないのね。 w3mユーザーオワタ >>619 w3mってJS解釈できないの? 今までGoogleにログインできたのは一体なにを解釈してたんだろう。 質問させてください! よく行くWebページを自分好みに整形したいです 構想は 1. w3mでページにアクセス 2. なんらかの方法でpythonに渡して整形 3. 整形したものを再びw3mに表示 です. 2と3の方法が分かりません. ちなみに,スレの中で出てた「フィルター」がこの機能でしょうか? >>621 2のpythonのプログラムを標準入力で受け取って標準出力で表示するように作れば、 w3m 〜 | python 〜 | w3m … という方法で渡していける。 ただ、pythonの出力がただのテキストなら、3をw3mで受ける必要があるか。 lessで十分だと思う。 w3m 〜 | python 〜 | less pythonがhtmlを出力するなら、3のw3mのオプション(…の部分)は -T text/html とする。 w3m 〜 | python 〜 | w3m -T text/html >>622 まさか当日中にレスが帰ってくるとは・・・! ありがとうございます! 今プログラム作ってるのでできたらやってみたいと思います 最初のところはcurlとかwgetとかでやったほうがいいんでねえの? 最初のところはw3mで閲覧中に | 入力にしたほうがいいんでねえの? ブログとか読むのに Perl の HTTP::Proxy 使っていろいろやってたよ。 整形だけでなく、どの記事を読んだかとか SQLite で管理してた。 最近は https だからローカルサーバに URL を渡して処理するね。 こっちも検索結果のマージとか、いろいろなことに利用してる。 難しい事してるんだな。どんな風に管理するんだろ。 まああまり頭良い使い方は向いてないだろうな。 自分が頭良くない事は痛いほどに痛感する重言する。 >>621 とかはlocal cgiといという機能もある。 w3mのtarballを展開したdoc-jp/*にちょっと説明が書いてある。 そのdoc-jp/の中で実行すればlocal cgiから使える機能とkeymapの説明を合体させてみた。 .w3m/keymapとして使えるはず?。ちなみに、linein.cを変更すれば入力の時のkeymapも変更出来る。 並び替えるだけ。 ---zsh sed '/^#/d; $ adummy' keymap.default |while read do test -z "$REPLY" && {echo; continue} if test $REPLY != dummy then mark=( $(grep -o '[^[:space:]]*$' <<<$REPLY) $mark) grep "^$mark[1]"[[:space:]] README.func \ |sed 's%[^[:space:]]\+[[:space:]]\+%# %' echo $REPLY else grep -Ev "$(printf '^%s|' $mark |sed 's%|$%%')" README.func \ |awk '{printf "# %s\n#keymap undefined-key %s\n", $2, $1}' fi done |nkf -w |cat <(grep '^#' keymap.default) - |less ------ local cgiはoptionで設定されたディレクトリにあるものはcgiとして実行出来るよ、 その時w3mの機能も使えるよという感じか。 まずw3mで一度optionの画面を開いて設定してもいいし、適当に保存すると、 .w3m/configが出来るから扱いやすいと思う。 w3m -show-option すると何のoptionか分かる。 場所決めてそこに^*2のようなscriptを入れて実行..あれ実行..なんて言うんだっけ とにかくそれをして以下のように呼び出すとgoogleのsourceの画面になる。後は勘でいけると思う。 俺も勘でしか触ってないし、勘で触って色々出来ると思うよ。 w3m file:///cgi-bin/echo.zsh?http://google.com/ ---*2 #!/bin/zsh <<EOF Content-Type: text/plain w3m-control: GOTO $QUERY_STRING w3m-control: VIEW EOF ------ 後便利なのはEXTERNとかは以下みたいな使い方も出来るよとかか。 なんでこんな書き方するのというのは、ただの説明の為。辞書系の機能も色々出来るね。 keymap ft EXTERN 'p=%s; |echo $p |xsel -a' #!/bin/zsh # 見れなくなったgoogleの対処を書いた。やっつけだけどやっつけがいつも自分を助けてくれない? # googleがおまえもっと使いにくいスタイルで使えと言ってきたら.w3m/.cookieを削除したり。 # httpsをhttpに変えてみたり、後num=100を50ぐらいに減らしたら文句言われない場合もある。 # 以下のようにcommandを実行した場合に変数$QUERY_STRINGに入っている'test%20test'を # test+testへ変えて吐き出す。 # w3m file:///cgi-bin/google.zsh?'test test' # 日本語は%エンコーディング?へ変えている。 # sedの処理は長い日本語をnkf -MQした時に入る改行への対応をしている。 w3go () { printf %s $1 |nkf -MQ |sed -n ':S $! {N; b S;}; s/=\n//g; s/=/%/g; p' test $# -eq 1 || {shift; echo -n +; w3go $@} } # 次のページへの対応。 if test "$QUERY_STRING" \=~ '^start=[0-9]*;' then NEXT="&$(cut -d ';' -f 1 <<<$QUERY_STRING)" QUERY_STRING=$(cut -d ';' -f 2- <<<$QUERY_STRING) fi # 検索部分の対応。 # formから送られてくるspaceが+に変換されたものを変える。 test "$QUERY_STRING" \=~ '^submit=1&' \ && QUERY_STRING=$(cut -d '&' -f 2- <<<$QUERY_STRING |sed 's/+\+/%20/g') # 飛ぶURLを作る。 URL="https://www.google.co.jp/search? \ q=$(w3go $(nkf --url-input <<<$QUERY_STRING))&hl=ja&biw=&bih=&gbv=1&num=100" # googleのhtmlをfilteringして表示する。 # ここら辺は癖なのか仕様なのかがあってcopyして実行しても # 動かないだろうからこういう書き方をしている。 # またここは丁寧にやれはやるほど遅くなる。 # 最後のsを,で仕切っているのは$QUERY_STRINGの中に%が含まれる為。 <<EOF Content-Type: text/plain w3m-control: GOTO $URL$NEXT w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input name=submit type=hidden value=1>'\ '<input type=text value="$(nkf --url-input <<<$QUERY_STRING)"></form>%;'\ 's%\(<a [^>]*>\)<[^>]*>\([^<]*\)</[^>]*>%\1\2%g;'\ 's%\(<a [^>]*href="\)/%\1https://www.google.co.jp/%g ;'\ 's,<a [^>]*;\(start=[0-9]*\)[^<]*\(&.t;</a>\)'\ ',<a href="file:///cgi-bin/google.zsh?\1;$QUERY_STRING">移動 \2,g' w3m-control: VIEW EOF 以下みたいに実行。動かなかったらごめんな。でも俺の環境だと動いてる。 w3m file:///cgi-bin/google.zsh?'わずかばかりの 運の悪さを 恨んだりして' 色々変な事してるなsubmitされて来て完成されてる文字列を+を%20とかに変える必要ないな。 inputってdefaultで入ってる文字列の方を加工すべきで。 後やっぱ一度に表示しないと戻る時にゴミが入りすぎるな。 まあ直さないんだけど。ノシ。 #!/bin/zsh w3go () { printf %s $1 |nkf -MQ |sed -n ':S $! {N; b S;}; s/=\n//g; s/=/%/g; p' test $# -eq 1 || {shift; echo -n +; w3go $@} } case "x$QUERY_STRING" in xstart=[0-9]*\;*) # 次のページへの対応。 NEXT="&$(cut -d ';' -f 1 <<<$QUERY_STRING)" QUERY_STRING=$(cut -d ';' -f 2- <<<$QUERY_STRING) URL="https://www.google.co.jp/search? \ q=$( w3go $(nkf --url-input <<<$QUERY_STRING))&hl=ja&biw=&bih=&gbv=1&num=100" ;; xsubmit=1\&*) # formから流れて来た文字列は加工しない。 # こうしないと移動の表示が狂う。 QUERY_STRING=$( cut -d '&' -f 2- <<<$QUERY_STRING ) URL="https://www.google.co.jp/search? \ q=$QUERY_STRING&hl=ja&biw=&bih=&gbv=1&num=10" ;; *) URL="https://www.google.co.jp/search? \ q=$( w3go $(nkf --url-input <<<$QUERY_STRING))&hl=ja&biw=&bih=&gbv=1&num=100" ;; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL$NEXT w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input name=submit type=hidden value=1>'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's%\(<a [^>]*href="\)/%\1https://www.google.co.jp/%g ;'\ 's,<a [^>]*;\(start=[0-9]*\)[^<]*\(&.t;</a>\)'\ ',<a href="file:///cgi-bin/google.zsh?\1;$QUERY_STRING">移動 \2,g' w3m-control: VIEW w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF EOF まだ色々間違ってるだろうけど、まあ適当には使えるじゃないか。 おしまい。 あ、一ヶ所だけnum=が10になっちゃってるから手動で直して。 明日か明後日には検索出来ない文字列と、時間指定の対応をする。 #!/bin/zsh # これだけで良かったのか簡単になった。でも半分寝てるから何処か間違えてるだろう。 w3go () { printf %s $1 |nkf -MQ |sed -n ':S $! {N; b S;}; s/=\n//g; s/=/%/g; p' test $# -eq 1 || {shift; echo -n +; w3go $@} } UNIQ=$(mktemp -u XXXXXXXX) case "$UNIQ$QUERY_STRING" in ${UNIQ}submit=1\&*) # formから流れて来た文字列は加工しない。 URL="https://www.google.co.jp/search? \ q=$( cut -d '&' -f 2- <<<$QUERY_STRING )&hl=ja&biw=&bih=&gbv=1&num=100" ;; ${UNIQ}dummy\&*) # 次のページへの対応。# 時間指定への対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )" ;; *) URL="https://www.google.co.jp/search? \ q=$( w3go $(nkf --url-input <<<$QUERY_STRING))&hl=ja&biw=&bih=&gbv=1&num=100" ;; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL$NEXT w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input name=submit type=hidden value=1>'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)%\1file:///cgi-bin/google.zsh?dummy\&\2%g' w3m-control: VIEW w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF EOF 何度もごめん見直して無い部分は大概間違ってるな。 そもそも最初testしてた時のcodeがまったくいらない。 まったく分けから無く見えてるなこれじゃ。 #!/bin/zsh UNIQ=$(mktemp -u XXXXXXXX) case "$UNIQ$QUERY_STRING" in ${UNIQ}submit=1\&*) # formから流れて来た文字列は加工しない。 URL="https://www.google.co.jp/search? \ q=$( cut -d '&' -f 2- <<<$QUERY_STRING )&hl=ja&biw=&bih=&gbv=1&num=100";; ${UNIQ}dummy\&*) # 次のページへの対応。# 時間指定への対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; *) URL="https://www.google.co.jp/search? \ q=$QUERY_STRING&hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input name=submit type=hidden value=1>'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)%\1file:///cgi-bin/google.zsh?dummy\&\2%g' w3m-control: VIEW w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF EOF #!/bin/zsh #おかしいな寝る前は対処出来てたんだけど起きたら世界が変わってた。変な所を一度消す。 case "$QUERY_STRING" in rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/[^&]*&//; s/%25/%/g' <<<$QUERY_STRING ))";; *) #default, またはformから流れてくるもの。 URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)%\1file:///cgi-bin/google.zsh?rotate\&\2%g' w3m-control: VIEW w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF w3m-control: DELETE_PREVBUF EOF #!/bin/zsh test "${QUERY_STRING%%&*}" = $(basename $( factor $PPID |md5sum )) \ && UNIQ=$(basename $( factor $PPID |md5sum )) case "$QUERY_STRING" in ${UNIQ}\&rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )";; ${UNIQ}\&decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; *) #default, またはformから流れてくるもの。 URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" UNIQ=$(basename $( factor $PPID |md5sum ));; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF # この星の一等賞んなりたいのw3mで俺は!そんだけ! # 変数UNIQ関係は検索した文字列がcaseの命令と重ならないようにしている。 # それはw3mの起動ごとに変わるはず。もしかしたらいらないのかな。 あーまた間違える。さっきまでとまた世界が変わってる。 #!/bin/zsh test "${QUERY_STRING%%&*}" != $(basename $( factor $PPID |md5sum )) \ && UNIQ=$(basename $( factor $PPID |md5sum )) case "$UNIQ$QUERY_STRING" in rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )" UNIQ=$(basename $( factor $PPID |md5sum ));; decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))" UNIQ=$(basename $( factor $PPID |md5sum ));; ${UNIQ}*) #default, またはformから流れてくるもの。 URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF #!/bin/zsh # あってるのかな。 UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%&*}" != $UNIQ; then # default, またはformから流れてくるもの。 URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" else case "$QUERY_STRING" in ${UNIQ}\&rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )";; ${UNIQ}\&decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%<form.*value="\(.*\)"[^>]*name="q".*/form>'\ '%<form action="file:///cgi-bin/google.zsh">'\ '<input type=text value="\1"></form>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF #!/bin/zsh UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%&*}" != ${UNIQ}=; then # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" else case "$QUERY_STRING" in ${UNIQ}=\&*) # formから流れてくるもの。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=\&rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )";; ${UNIQ}=\&decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed \ 's%Shift_JIS%UTF-8%g; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name="${UNIQ}" type=hidden>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF formから流れてくるものはqueryの変更をしない事にした。ニュースを検索したいのに「すべて」を 検索してしまう事への対応。 Shift_JISは変えないと、formから流れてくる文字の検索が失敗する。 大体これで前と一緒な感じがするな。ただ眠るとどうだろうな。 まあ誰か役に立てば。 はい間違えてる。なんなの俺。俺の頭どうしちゃったんだよ。 #!/bin/zsh UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%&*}" != ${UNIQ}=; then # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" else case "$QUERY_STRING" in ${UNIQ}=\&rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )";; ${UNIQ}=\&decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; ${UNIQ}=\&*) # formから流れてくるもの。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed \ 's%Shift_JIS%UTF-8%g; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name="${UNIQ}" type=hidden>%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF #!/bin/zsh UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%=*}" != ${UNIQ}; then # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=10" else case "$QUERY_STRING" in ${UNIQ}=\&rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )";; ${UNIQ}=\&decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; ${UNIQ}=1\&*) # formから流れてくるもの。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%Shift_JIS%UTF-8%g; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2'\ '<input name=$UNIQ type=hidden value="1">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF あ、num=10のままになってるな。 これでもうもう間違いないっしょ。 だからnumは自分で変えてくんろ。 UTF-8に変える所にgは要らないな。このぐらいじゃ貼らないけど。 てか直さないと出力の中のも変えちゃうか。あーまた間違えてる。 #!/bin/zsh UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%=*}" != $UNIQ; then # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" else case "$QUERY_STRING" in ${UNIQ}=\&rotate\&*) # 次のページへ、時間指定等の対応。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 3- <<<$QUERY_STRING )";; ${UNIQ}=\&decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; ${UNIQ}=1\&*) # formから流れてくるもの。 URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="1">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=\&decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=\&rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF 良かった。気づいて。これは申し訳ないレベルだった。 よしもういいだろ。もういいだろ。 #!/bin/zsh # より短く分かりやすく、無駄な事をしてる部分を削った。 UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%=*}" != $UNIQ; then # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" else case "$QUERY_STRING" in # formから流れてくるもの。# 次のページへ、時間指定等の対応。 ${UNIQ}=form\&*|${UNIQ}=rotate\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/\([^&]*&\)\{2\}//; s/%25/%/g' <<<$QUERY_STRING ))";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF #!/bin/zsh # 直し忘れの修正。 UNIQ=$(basename $( factor $PPID |md5sum )) if test "${QUERY_STRING%%=*}" != $UNIQ; then # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100" else case "$QUERY_STRING" in # formから流れてくるもの。# 次のページへ、時間指定等の対応。 ${UNIQ}=form\&*|${UNIQ}=rotate\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/[^&]*&//; s/%25/%/g' <<<$QUERY_STRING ))";; esac fi <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF #!/bin/zsh # ごめんこれだけで良かったの修正。 UNIQ=$(basename $( factor $PPID |md5sum )) case "$QUERY_STRING" in # formから流れてくるもの。# 次のページへ、時間指定等の対応。 ${UNIQ}=form\&*|${UNIQ}=rotate\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/[^&]*&//; s/%25/%/g' <<<$QUERY_STRING ))";; *) URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF 一応簡単に説明しくおくと、最近googleで検索してもlink先へ飛べなくなった事への対 処をしている。googleが送ってきたソースをsedで加工して表示している。<a></a>の中に <div>があってそれが原因なので消しているだけ。 他にそのままgoogleを開いたまま検索した場合、検索は出来るが出てくるソースはまた 上で書いた問題を含む為、cgiを経由するように書き換える、だからまた同じようにsedで 加工されたページが表示される。その繰り返し。 やっぱちょっと違うな。<div></div>に変えて動いてるわけだからな。 これは動く。 <a href='test.html'>test<div></div></a> これ駄目。 <a href='test.html'><div>test</div></a> #!/bin/zsh # factorを変更しただけ。 UNIQ=$(basename $(ps -p $PPID -o pid,ppid,egroup,euser,lstart |md5sum)) case "$QUERY_STRING" in # formから流れてくるもの。# 次のページへ、時間指定等の対応。 ${UNIQ}=form\&*|${UNIQ}=rotate\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/[^&]*&//; s/%25/%/g' <<<$QUERY_STRING ))";; *) # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF #!/bin/zsh # bsdのmanにはeuserとかの指定の仕方は無かったので変えただけ。 # そもそもたぶんここ要らないと思うんだけど改造する時の使い道としてまあやっとく。 UNIQ=$(basename $(ps -p $PPID -o pid,ppid,group,user,lstart |md5sum)) case "$QUERY_STRING" in # formから流れてくるもの。# 次のページへ、時間指定等の対応。 ${UNIQ}=form\&*|${UNIQ}=rotate\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=decode\&*) # ここから再検索して下さいの対処。 URL="https://www.google.co.jp/search? \ $(nkf --url-input <( sed 's/[^&]*&//; s/%25/%/g' <<<$QUERY_STRING ))";; *) # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/url?q=/search%3F\(q%3D[^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=decode\&\2,;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g ;'\ 's%\(<a [^>]*href="\)/search?\([^"]*"\)'\ '%\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF このぐらいの変更で貼り付けないけど、gidとuid使ったほうがいいのかも。 UNIQ=$(basename $(ps -p $PPID -o pid,ppid,gid,uid,lstart |md5sum)) ここの話しね。 UNIQ=$(printf $(ps -p $PPID -o pid,ppid,lstart |md5sum)) このぐらいでいいな。後printfの方が速いな。 いまいちここ好きじゃなんだよな。 #!/bin/zsh # すまんnkfとか無くてももっと簡単な事だった。 # 後<span>を削る必要は無いけど扱いやすくなるから残しとく。 UNIQ=$(printf $(ps -p $PPID -o pid,ppid,lstart |md5sum)) case "$QUERY_STRING" in # formから流れてくるもの。 ${UNIQ}=form\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=rotate\&*) # 次のページへ、ここから再検索して下さい、時間指定等の対応。 URL="https://www.google.co.jp/$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; *) # default. URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: VIEW w3m-control: PIPE_BUF sed 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/\(search?\|url?q=/search%3F\)\([^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2\3,g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF 最後にちょっとだけ拡張してみた。これでそろそろ辞めるわ。 変数大文字ですまんな、なんかそうなってしまった。 まあまた間違いのラッシュだろけど。 現在のurlが一番上に表示されるようにしたからそれを見ながら、 二つ目のformにsedに渡す文字列を入力してsubmitするとその変更したurlに変わる。 だからs/ja/en/とすると英語のページに変わりますよという事。 #!/bin/zsh # やられた停電だよ。まじか。 UNIQ=$(printf $(ps -p $PPID -o pid,ppid,lstart |md5sum)) case "$QUERY_STRING" in ${UNIQ}=option\&*) URL_HOLD=$(nkf --url-input <(sed 's%[^&]*&field=\([^&]*\)&.*%\1%' <<<$QUERY_STRING)) URL=$(sed $(nkf --url-input <(cut -d '&' -f 3 <<<$QUERY_STRING |tr '+' ' ')) <<<$URL_HOLD) test -z "$URL" && URL=$URL_HOLD;; ${UNIQ}=form\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=rotate\&*) URL="https://www.google.co.jp/$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; *) URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: EXTERN echo %s |xsel -s w3m-control: VIEW w3m-control: PIPE_BUF sed "s,<body [^>]*>,&\$(xsel -s |sed "s/&/\\\\\&/g")<br />,;"\ 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's,</form>,&<form action="file:///cgi-bin/google.zsh">'\ '<input name=$UNIQ value="option" type=hidden>'\ '<input name=field value='"\$(xsel -s |sed "s/&/\\\\\&/g")"' type=hidden>'\ '<input type=text></form>,;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/\(search?\|url?q=/search%3F\)\([^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2\3,g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF そうだった。xsel -s使ってるから。xsel -sの内容消えるからね。 #!/bin/zsh UNIQ=$(printf $(ps -p $PPID -o pid,ppid,lstart |md5sum)) case "$QUERY_STRING" in ${UNIQ}=option\&*) URL_HOLD=$(nkf --url-input <(sed 's%[^&]*&field=\([^&]*\)&.*%\1%; s/%25/%/g' \ <<<$QUERY_STRING)) URL=$(sed $(nkf --url-input <(cut -d '&' -f 3 <<<$QUERY_STRING |tr '+' ' ')) <<<$URL_HOLD) echo $QUERY_STRING>>$HOME/debug echo $URL>>$HOME/debug echo $URL_HOLD>>$HOME/debug test -z "$URL" && URL=$URL_HOLD;; ${UNIQ}=form\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=rotate\&*) URL="https://www.google.co.jp/$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; *) URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: EXTERN echo %s |xsel -s w3m-control: VIEW w3m-control: PIPE_BUF sed "s,<body [^>]*>,&\$(xsel -s |sed "s/&/\\\\\&/g")<br />,;"\ 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's,</form>,&<form action="file:///cgi-bin/google.zsh">'\ '<input name=$UNIQ value="option" type=hidden>'\ '<input name=field value='"\$(xsel -s |sed "s/&/\\\\\&/g")"' type=hidden>'\ '<input type=text></form>,;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/\(search?\|url?q=/search%3F\)\([^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2\3,g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF >>675 で完成してるからな。後は余興。ノシ。PC触り過ぎてきもちわり。 すまん。やっぱ寝ぼけてたな。$HOME/debugにfileを書き出してる。 #!/bin/zsh UNIQ=$(printf $(ps -p $PPID -o pid,ppid,lstart |md5sum)) case "$QUERY_STRING" in ${UNIQ}=option\&*) URL_HOLD=$(nkf --url-input <(sed 's%[^&]*&field=\([^&]*\)&.*%\1%; s/%25/%/g' \ <<<$QUERY_STRING)) URL=$(sed $(nkf --url-input <(cut -d '&' -f 3 <<<$QUERY_STRING |tr '+' ' ')) <<<$URL_HOLD) test -z "$URL" && URL=$URL_HOLD;; ${UNIQ}=form\&*) URL="https://www.google.co.jp/search?$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; ${UNIQ}=rotate\&*) URL="https://www.google.co.jp/$ ( cut -d '&' -f 2- <<<$QUERY_STRING )";; *) URL="https://www.google.co.jp/search?q=$QUERY_STRING& ;hl=ja&biw=&bih=&gbv=1&num=100";; esac <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: EXTERN echo %s |xsel -s w3m-control: VIEW w3m-control: PIPE_BUF sed "s,<body [^>]*>,&\$(xsel -s |sed "s/&/\\\\\&/g")<br />,;"\ 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's,</form>,&<form action="file:///cgi-bin/google.zsh">'\ '<input name=$UNIQ value="option" type=hidden>'\ '<input name=field value='"\$(xsel -s |sed "s/&/\\\\\&/g")"' type=hidden>'\ '<input type=text></form>,;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/\(search?\|url?q=/search%3F\)\([^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2\3,g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF # もう間違っててもちょっと離れる。 まじすまんな。上の$HOME/debugにfileを書いちゃってるから。 まあダメージないだろうけど。この失敗は教訓にしよう。 幸い>>でつけたしだから。万が一があってもあわてずにな。ノシ。 すまん。xselなくてもいけるなPIPE_BUFでも普通に%s使えるっぽいな。 直すか。 いや、どうやら無理だな。後sedで変更する値が見えてるままの値じゃなくて 検索に入ってる文字列を変更するようになってるけと、これは直さないほうが使いやすいな。 後ほんとsedに流し込んでるだけなので、危険な事すれば危険なのでね。 # 下部分だけちょっと改良。 # でも前のほうがxsel -sにurlがそのまま入ってる形だけど。 # xselを一時fileにしたほうが素直だと思うけどrm使うのは頭働かせないと怖いからやらない。 <<EOF Content-Type: text/plain w3m-control: GOTO $URL w3m-control: EXTERN echo %s |sed 's/&/\\\&/g' |xsel -s w3m-control: VIEW w3m-control: PIPE_BUF sed "s,<body [^>]*>,&\$(xsel -s)<br />,;"\ 's%\(<input[^>]*\)Shift_JIS%\1UTF-8%; s%\(<form \)\([^>]*>\)'\ '%\1action="file:///cgi-bin/google.zsh" \2<input name=$UNIQ type=hidden value="form">%;'\ 's,</form>,&<form action="file:///cgi-bin/google.zsh">'\ '<input name=$UNIQ value="option" type=hidden>'\ '<input name=field value='"\$(xsel -s)"' type=hidden>'\ '<input type=text></form>,;'\ 's%\(<span[^>]*>\|</span>\)%%g; s%<div[^>]*>%%g; s%</div>%<div>&%g;'\ 's,\(<a [^>]*href="\)/\(search?\|url?q=/search%3F\)\([^"]*"\)'\ ',\1file:///cgi-bin/google.zsh?${UNIQ}=rotate\&\2\3,g;'\ 's%\(<a [^>]*href="\)/url?%\1https://www.google.co.jp/url?%g' w3m-control: VIEW $( printf '%s\n' 'w3m-control: DELETE_PREVBUF'{,,,} ) EOF どうでもいいだろうけど以下の部分は、""いらないな。 '<input name=field value='"\$(xsel -s)"' type=hidden>'\ こう見たほうが素直に何してるか分かるかも。\\\&が非常に自分でも分かり辛い。 '<input name=field value='\$(xsel -s)' type=hidden>'\ w3mは適当にformだけを切り出してもちゃんと描画してくれるから、 適当に抜き出してw3m-control: SUBMITを使えば、 10行20行に満たないコードでいろいろ書けちゃうね。shで書くよりも短く書ける。 やっぱw3m作った人はセンスの塊だと思うわ。いつか俺はテコ入れしてバージョン上げたいね。 色々書いたから載せたい所だか、まあ間違い直しでスレッドが埋まっちゃうから無理だな。 5chはmoreなんだな。lessじゃない。 「誰に向けて書いてんだよ?」とは思うけど、どうせ過疎スレだし… そんなことより Google の仕様がまた変わったな。 テキストがリンクになってる。a 要素の中に div 要素が無い。 まあ、この変更に気付いたのは lynx で見てる時なんだが。 俺の環境だとgoogle検索結果の <a> 要素中に <div> が入ってる。 User-Agent を見て出力形式を振り分けてるのかも知れん。 lynx は対応してるけど w3m は放置されてる感じで。 Lynx で google が使えなくなった視覚障害者の話がちょっと前にバズってたけど ちょっとは影響があったのかな? でも、リンクが辿れるだけマシになったとは言え、 圧倒的に情報量が少ない。 User-Agent が Mozilla 系でも使えた頃が一番見やすかった。まだ今年の話だと思うが、 まともに見られなくなり User-Agent を Lynx 系にして凌いでいた。しかし、1 ヶ月 ちょっと前に完全にダメになってしまった。それまでにもちょいちょい表示が崩れることが あったが大抵リロードで解決できていたのに。JavaScript 必須、GET より POST の時代ですな。 StartPage もいつからか次ページに移動できなくなったし、DuckDuckGO も何だか 見辛かったのだが、今回の騒動で Lite 版があるのを知って使い勝手がマシになった。 とは言え、タイトルはぶったぎりだし、検索の質はやはり劣るか。 本家の CVS から落とせなくなってからは、Debian 管理化の Git リポジトリを利用してるけど User-Agent を Lynx 系にしようとしたとき siteconf に対応していることに気付いた。 それ以来便利に使っている。 >>698 w3mは高機能でテーブルのレイアウトができて視覚障害者は利用しないので、Lynx対応の方が社会的な要求が強いのでしょうね。 いきなりLynx-devのメール流量が増えた時は、私も驚きました。 googleさんの検索結果ページだけど、またw3mで使い物になるように改善されたかな。 皆さんどうですか? 自分とこ、色々手を入れちゃったせいで一般的な環境じゃないんだわ。 書き込みがあったとは、気付かなかった。ほら、過疎スレだからさ… w3m も lynx も、a 要素の中に div 要素があると hidden link になるけど 特に困ることじゃない。 w3m の場合はリンク番号を表示させれば済む。 Google で hidden link になってた時期は >>616 から >>696 まで。 Twitter 閲覧する local CGI とか作ってる方っていらっしゃらないですかね……? >>706 スクレイピングする方法はググれば沢山見つかるから簡単に自作できるんじゃない? っていうか自分もこれから作ろうと思ってる あんま関係ないけど、とあるサイトで w3m で画像が表示されなくなったことがあって なんか lazy load とかいうやつらしくて そのときは串自作して対応したよ >>706 Twitterは、user-agentをBot等に変えれば行けませんか? >>708 いままで mobile.twitter.com でモバイル版が提供されてて w3m などのテキストブラウザでも HTML で直接閲覧できていたんですが、 2020-12-16 で mobile.twitter.com 自体が廃止になったので、 今後は API 叩いたり JSON いじったりしないとダメじゃないかと思います。 試してみれば見れるのは分かるだろうに なんで適当な事書くのかね そっか、検索でツイート引っかかるよう抜け道残してあるんだな >>710 失礼しました。「user_agent」を「Bot」にしたら確かに見れますね。 だいぶ読みづらくはなりますが……。 え、User-Agentを「Bot」にしても、ログインすると 「このブラウザは現在サポートされていません。」 と出るんだけど、何か足りない設定があるのかな >>713 ログインしない状態での閲覧はできましたが、ログインしてからの操作は、こちらもできませんでした。 user-agent以外の手段が必要そうです。 なお、閲覧するだけなら、nitterを使うとすっきりした表示になるようです。 ありがとう、やっぱり見れないのね JavaScriptの勉強してlocal CGIを書くかなあ すみません、私は普段ログインせずに閲覧するだけなのでなんとか見れるようになりましたが、 確かにログインするとダメですね……。 ちなみに、 UA をボットにするのは、 README.siteconf にそのものズバリな例が載っていました。 あ、あと、ボットにして見れるのも最新 20 件くらいだけで、ページ送りはできないみたいですね。 >>714 nitter 良いですね。 siteconf に設定しました。 url "https://twitter.com/" ; substitute_url "https://nitter.net/" ; Opening socket... と表示されてる時に接続が切れると うんともすんともと言わなくなるんだな どれだけタブを開いていても固まってしまうから kill して全て破棄するしかなくなる それはまだ接続してないんじゃないか。 「接続が切れる」とは何を指してる? 文字通りだろ 光だと経験ないかもしれないが ボロいADSLなんかで使えば分かる 最初からオフラインだと固まらない Opening socket... の少し後で切れた場合は操作はできても 子プロセスがずっと残ったりする |ヽ|l:.:.:.:/|:l:.:.:.:.:.:..|:.,rー'''゙¨ヽ、:.:.:.:.|:.:.:.:|:.:.:.|:.:| |/ l\/ l/|:.:.:.:l:.|!´ l:.:.:.:.:|:.:.:.:l!:.:.:|:.:| |_/|/ ヽ、|:.:.:.!/ /:.:.:.:.:.|:.:.:.:.l:.:.:.|:.:| |`ヽミ l:.:.:./ _,,,.. -ー/li.:.:.:.:.:l:.:.:.:.:|:.:.:.|:.:| |ィト,/` l,/´ l:/|`:.:.:./:.:.:.:.:|:.:.:.|:.:| |ソ,/ ___ ' i:.:.:.:/:.:.:.:.:.:|:.:.:.|:.:| |` ./,、 ̄`_ヽ|:./l:.:.:.:.:./:.:.:.:|:.:| | ,ト!(:.:rテ'/ ´ /:.:.:.:./:.:.:.:.:.:l:.:| | ' ヾニ_ / /'ノl:.:.:/:l:.:.:.:.:.:.|:.:| /iヽ ヽ 、_ ,/_' -‐':.:.:|:.:.:.:.:.:|:.:l ヽ` \  ̄ ィ‐':.:.|:.:.:.:.:.:.l:.:.:.:.:.:.|:/ >>1 乙だよ l`ヾ、 l--──‐─‐.' ´:.:.:.:.:.:|:.:.:.:.:.:i:.:.:.:.:.:.l/ _'、 \. |イ:./l/:.:.:.:.:.:.:.:.:.:.,:.:.:.:.ノ:.:.:/l/:.:.:.:.:./' l l \ `'i Y |:.:/ノ_ -‐!/l:./l:.:.:/ /:.:.:.:./l 〉、 ヽ | \ ` ´ レ i/ il_/ 光回線だがOpening socket...で固まると何も操作できなくなるな killするしかない ipv6なんて無い昔からの挙動だからな>>719 - redhatでmake出来るソースどこかにありますか? dnf searchではヒットするけど installしようとするとエラーで終わってしまいます no_proxy 環境変数を理解できない、或いはクセがあるのだっけ? curl、wget では $no_proxy に従い直接接続できるが、w3m はプロキシに行ってしまうのだが。 $ w3m --version w3m version w3m/0.5.3, options lang=en,m17n,image,color,ansi-color,mouse,gpm,menu,cookie,ssl,ssl-verify,external-uri-loader,w3mmailer,nntp,gopher,ipv6,alarm,mark >>733 自己レス。 そもそも proxy 環境変数を見ないのだな。.w3m/config に書くのであって。 read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる