遙皇φ ★ その3

このエントリーをはてなブックマークに追加
275遙皇 ◆HEHARUKAoo
ニュー速+のスレタイをしゃべるソフト
http://bbs.newsplus.jp/test/read.cgi/bbs/1042231097/851
の件。

http://www.dqnplus.net/2ch/kisya/lost.php
にあるリンク先のdatをJaneで全部Get。

1.
とりあえずhtmlをGetします。方法は何でもいいけど楽そうなので
lynx --assume_charset=euc-jp --source http://www.dqnplus.net/2ch/kisya/lost.php > datlist.html

2.
EUCだとWindowsで扱いにくいのでコンバート。
iconv -f EUC-JISX0213 -t SHIFT_JISX0213 ./datlist.html >datlist_sjis.html

今のところ決まっているのはここまで。
276遙皇 ◆HEHARUKAoo :04/03/16 01:32 ID:???
JaneにURLを送る
Jane http://etc.2ch.net/test/read.cgi/intro/1067698759/

JaneにURLを送るがJaneにフォーカスが移動しない
Jane -a http://etc.2ch.net/test/read.cgi/intro/1067698759/

JaneにURLを送るが「裏で開く」モードで開く
Jane -b http://etc.2ch.net/test/read.cgi/intro/1067698759/

なるほどね。
277遙皇 ◆HEHARUKAoo :04/03/16 01:43 ID:???
JANE='/cygdrive/h/openjane/Jane2chDoe.exe'
JANEOPT=" -a -b '
これ使おう。

URLTOJANE[]にURL全部放り込んでforeachするか
xargs | で渡すか・・・

HTMLからhttp://news*.2ch.net/test/read.cgi/*/*/にマッチするリンクを切り出すには・・・
うーん、やっぱcygwin+perlが最善手なのかなあ。
正規表現マッチが使えれば何でもいいという話もある(;´Д`)
278遙皇 ◆HEHARUKAoo :04/03/16 02:02 ID:???
うむ、これだ
lynx --assume_charset=euc-jp --dump http://www.dqnplus.net/2ch/kisya/lost.php
でstdoutに出たものをパイプでgrepに渡して '/test/read.cgi/' にマッチした行だけを
Janeに渡す。
279ごんちゃく ◆GONChrp3.k :04/03/16 02:04 ID:???
あっちに状況よく読まないで書いちゃったけど

http://www.dqnplus.net/2ch/kisya/lost.php
のスレだけでいいのなら
[TAB][TAB]<DIV
で始まらない行は無視する
↑で始まる行は49バイト目から117バイト目までがurlでいくないの?
それをDelphiでちょちょいとするとか。
280ごんちゃく ◆GONChrp3.k :04/03/16 02:15 ID:???
バイト数間違えてたかも。

実験したら一覧は出来たよ

procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
 RicheditDest.Lines.Clear;
 for i:=0 to RicheditSrc.Lines.Count-1 do
  begin
  if AnsiStartsText(#09#09'<Div',RicheditSrc.Lines[i]) then
   begin
    RicheditDest.Lines.Add(Copy(RicheditSrc.Lines[i],50,54));
   end;
   //
  end;
 //
end;
281ごんちゃく ◆GONChrp3.k :04/03/16 02:24 ID:???
>>280
begin
 RicheditDest.Lines.Add(Copy(RicheditSrc.Lines[i],50,54));
end;

begin
 url:=Copy(RicheditSrc.Lines[i],50,54);
 RicheditDest.Lines.Add(url);
 ShellExecute(Handle,'open','C:\Jane\Jane2ch.exe',PChar('-a -b '+url),nil,SW_SHOWDEFAULT);
end;
にしてみるとか。
でもそのまま実行したら(((( ;゜Д゜)))ガクガクブルブルなので試してはいないけど…
282遙皇 ◆HEHARUKAoo :04/03/16 02:30 ID:???
おー、そういう解釈もありかあ。

cygwinのコンソールでやったら一行でできた(;´Д`)

$ lynx --assume_charset=euc-jp --dump http://www.dqnplus.net/2ch/kisya/lost.php |grep -o -G 'http:\/\/news.\.2ch\.net\/test\/read\.cgi\/.*\/.*\/'
これをJaneに渡すだけだけどまだ試してない。
ちょっと((((;゚Д゚))))ガクガクブルブル
283ごんちゃく ◆GONChrp3.k :04/03/16 02:33 ID:???
>>281に怖いから一つ取得するごとにメッセージボックス出すようにして実験したらちゃんと動きますた。
●もってないから全部302だけど…。
284遙皇 ◆HEHARUKAoo :04/03/16 02:47 ID:???
やべー
一気に食わせたら同時接続数超過状態で固まった・・・
そりゃそうだよなあ、後先考えずに試すのやめよっと(;´Д`)
285遙皇 ◆HEHARUKAoo :04/03/16 03:49 ID:???
最終的なコマンドライン
$ lynx --assume_charset=euc-jp --dump http://www.dqnplus.net/2ch/kisya/lost.php |grep -o -G 'http:\/\/news.\.2ch\.net\/test\/read\.cgi\/.*\/.*\/'|xargs -p -l5 -P2 /cygdrive/h/openjane/Jane2chDoe.exe -h -a -b

これで5スレずつJaneに食わせてdatを取得。
286遙皇 ◆HEHARUKAoo :04/03/16 09:33 ID:???
取得したdatを同じような方法で別フォルダに移動、あとはtar.gzにして終了。
UNIXシェルの正しい使い方がやっとわかった気がする。