Perlを使って2ちゃんねるにHello Worldを書き込む
1 :
デフォルトの名無しさん :
2007/07/15(日) 16:16:50 俺、がんばる。みてて。
さて、httpをしゃべるライブラリには何を使ったら良いだろうか? むかしLWP::Simpleを使ったことはあるとはいえ、 Simpleっていうぐらいだからもっと高度なことをするときには 別のものがいいのだろうか?
>3で結果が見えたな
Perl でやるより Curl でやった方が楽だと思うが...
なんかCurlって名前のものいくつか無い? 言語? php用ライブラリ?
あぁ、やっとわかったよ。
http://d.hatena.ne.jp/keyword/curl ライブラリとしてのlibcurl、それをコマンドラインから使用するcurl。
それとはまったく別の、次世代ウェブ記述言語Curlがあるんだね。
>>5 さんがいっているのはコマンドライン用Curl?
悪くは無いんだけど、共有レンタルサーバーでも使えるようなやり方を
目指しているので。でもあとで使うよ!
ところで、phpではlibcurlを使うのかな? とりあえず、必要と思われる機能は UserAgentなどのヘッダやクッキーをいろいろ設定してhtmlを読み込む。 帰ってくるヘッダやクッキーを読み取れる機能。 まあ、シンプルじゃないライブラリなら大概、対応しているだろう。 あと個人的に、proxy対応、https対応のライブラリであってほしい。 さぁ、どんなライブラリがあるのか探すぞ!
あと認証機能もほしいね。BASIC認証とかいろいろ
LWPってlibwww-perl の略だったのか。今頃気づいたwww
12 :
獅子王 :2007/07/15(日) 17:22:00
あの〜、ずいぶん久方ぶりの書き込みなんですけど僕もperlを使ってみたいなぁと思うんです。 だけどあの英語漬けのサイトで一体どうやればダウンロードできるのかわかりません。 誰か暇つぶしついでに教えていただけませんか?
>>11 Javaかぁ、もっと大規模なのを作るときは使うけど、
簡単なツールレベルだと、ちょっと重く感じるな。
あと共有サーバーじゃ大概つかえないし。
よし、たいしたことができないであろう、LWP::Simpleじゃなくて、
もっといろいろできるであろうLWP::UserAgentを使ったコートだ
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/8.0");
$req =
HTTP::Request- >new(GET => '
http://pc11.2ch.net/test/read.cgi/tech/1184483810/ ');
$req->header('Accept' => 'text/html');
$res = $ua->request($req);
if ($res->is_success) {
print $res->content;
} else {
print "Error: " . $res->status_line . "\n";
}
荒らしスクリプトをオープンで作ってる・・・
>>18 違いますよ。ただの2ちゃんねるブラウザですよ。^^;
あれ?
>>20 のやつVistaで動かない。XP上のIE7なら動いていたんだが・・・
まあ、それならそれでFirefoxのやつつかうけどさ
とりあえず、クッキーとか何も持っていない状態でブラウザから普通に書き込むと、 POSTで以下の内容が送られるな。 submit=%8F%91%82%AB%8D%9E%82%DE FROM=aaa mail=bbb MESSAGE=ccc bbs=tech key=10桁の数字 time=10桁の数字 そして、以下のクッキーを保存しろといってくる。意味はぐぐればわかるだろう PON=俺のホスト; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/ HAP=7桁の数字; expires=Friday, 01-Jan-2010 00:00:00 GMT; path=/ JavaScriptが有効になっていると少し変わるようだ。 いつの間にか、NAME="aaa" MAIL="bbb" がセットされており、 送信するときに、上記のクッキーを送っている。まあ無視して良いだろう。
23 :
デフォルトの名無しさん :2007/07/15(日) 19:05:53
WWW::2chに書き込み機能は相変わらず無いのか?
>>23 そんなのがあるのかw あとでみてみる。
2ちゃんねるを知っている人には当たり前だろうが、
初めて書き込むときには、「上記全てを承諾して書き込む」がでる。
クッキー名hanaにmogeraが設定されているかどうかで判断されるようだ。
これは今現在の話なので将来は変わる?スレごとに違うのかな?
とりあえずクッキーを持たずに書き込むと飛ばされる「上記全てを承諾して書き込む」ページには
>>22 で送られる内容にくわえ、hiddenでhana=mogeraが追加されている。(subject=""もあるがスレ立て時に使われるのか?)
そこらへんを見れば、クッキー名や値が変わっても対応できるのかもしれない。
どうやら、書き込むときに hana=mogera と PON = 俺のホスト名 が 無ければいけないようだ。 hana=mogeraはさっきも書いたように同意するかどうか、 PONが変わる(つまり回線をつなぎなおしたとき)は確認画面に飛ばされる。 HAPはなんだろう?無くても書き込めるようだがまたセットさせられる。 さてぐぐるかw
そういや、ルータを使っている場合に自分のホスト名って (外部のサーバーなしに)取得できるんかいな? ルータのUPnP機能に問い合わせればわかるようなことを 以前見た気がするが・・・ まあ、2ちゃんねるに限れば、普通にアクセスして 戻ってきたクッキーをちゃんと記憶すればいいだろうけど。
ふう。風呂はいっていたよ。 さてのんびりやるぞ! これからの投稿予定は次のとおりとなっております。お楽しみに。 ・POSTを使ったデータ送信 ・クッキーの取得 ・クッキーの送信 ・書き込めた! ・やっぱ文字コードはUNICODEでしょ! ・BASIC認証がある場合は・・・ ・それ以外認証ページは・・・ ・httpsページにトライ! ・そしてphp版へ・・・ ・そしてCurl版へ・・・
とても楽しめそうにない件について。
>>27 Perl で書けたのであれば Curl はやらなくて良いと思うよ。
それより書き込みだけじゃなく、スレ立ても出来る様になると嬉しいんじゃない?
楽しいなあ 楽しいなあ 楽しいなあ
どうも荒らしスクリプトを作ろうと思っている様にしか思えんなぁ。 そもそも人にきかなきゃわからんレベルの人間がやるものでもないし。
俺、別に聞いてないし・・・・。
何でもしたり顔でケチ付けようとする人間はいるもんだよ 自分でも言ってる意味が分かってないから、反論しても無駄
必死だな。
35 :
デフォルトの名無しさん :2007/07/15(日) 22:51:57
何事にも必死に取り組まなければ2ちゃんねらになっちゃう!! そう子供たちに教えるべきだね。
キチガイがいるな
38 :
test :2007/07/16(月) 02:34:11
test
あー。書き込めちゃった。まあゆっくりやるかw
脳内妄想が激しいスレだな
暗いスレだな
ていうか君以外のレスは全部 perl で書かれた bot がやってるって知ってた?惟も含めて。
日本語OK?
縺薙l縺ッ繝悶Λ繧ヲ繧カ縺九iUTF8縺ァ譖ク縺崎セシ繧薙□譁?蟄?
はいはい、またーりいくよ。 テスト用に、サーバーに送信したデータをそのまま表示するだけのphpコード ちゃんと送られているかこれで確認! <?php header("Content-Type: text/plain"); print "[REQUEST]\n"; print_r(apache_request_headers()); print "[SERVER]\n"; print_r($_SERVER); print "[GET]\n"; print_r($_GET); print "[POST]\n"; print_r($_POST); print "[COOKIE]\n"; print_r($_COOKIE); print "[FILES]\n"; print_r($_FILES); ?> IEはダウンロードしやがるぜ。けっ
さあて、いよいよpostだ。実際に動かすときは自分のサーバーに置いた
スクリプト(
>>45 でいい)に向けてpostするように。
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)");
$req =
HTTP::Request- >new(POST => '
http://www.example.com/test.php?getdata=gettest ');
$req->header(
'Accept' => '*/*',
'Accept-Language' => 'ja-JP,en-US;q=0.5',
'Referer' => '
http://www.example.com/ ',
);
$req->content_type('application/x-www-form-urlencoded');
$req->content('postdata=posttest');
print $ua->request($req)->as_string;
Hello World
Hello World 2
うーん。postするときのtimeの数字ってなんだろう? 日付に直すと Sun, 02 Jan 2005 17:55:08 GMT なんだが、 どこから取得すればいいのだ? htmlのフォームから取得できるのはわかるが・・・
Hello World 3
Hello World 3
Hello World 3
Hello World 3
よくわからんが、現在時刻マイナス? で書き込めるようだ。
ここでテストするのはやめれ。運営にチクるぜー?
通報しますた
あぼーんだらけの某板に書いてみるとか
最悪板あたりでやればいいのでは
結局どこいったん>
61 :
デフォルトの名無しさん :2007/07/27(金) 01:20:27
他の鯖でも試してみた?
Hello, World
64 :
ヒッキーの達人 ◆MEIDO...W. :2007/07/29(日) 03:50:50
僕も最近Perlを始めたので hello, world を作ってみました #!/usr/bin/perl use strict; my $hello = "hello, world"; my $tmp = './hello.world'; open OUT, "> $tmp" or die "$!"; flock OUT, 2; print OUT $hello; close OUT; open IN, $tmp or die "$!"; flock IN, 2; my @in = <IN>; close IN; unlink $tmp; foreach(@in){ s/$hello/herro, world/i; } my $res = `ping -c 4 www.google.com`; undef $res; print $hello; my @n = qq|\n|; foreach(@n){ print; }
Unrecognized character \x81 at C:/Users/Dai/workspace/PerlTest1/MainTest2.pl line 19.
66 :
デフォルトの名無しさん :2007/07/29(日) 20:52:03
ヒント:全角スペース
みんな車輪の再開発をして技術を身に付けるんだよ。 弟子は師匠の筆の跡を盗むもんだ。
perlだけでなくrubyやpythonその他 いろいろな言語でこれをするならどれが一番きれいだと思う?
elisp
71 :
デフォルトの名無しさん :2008/01/10(木) 11:13:45
hello world
pythonだったら2ch書込用ライブラリ作ったけど
omaeka
うんこ
cgiからも書き込めるようにしてみた。 だからアク禁くらってもレンタルサーバーにcgiぶっこめばいくらでも書き込める。
うんこ
うんこ
てすと
81 :
80 :2008/01/28(月) 12:02:46
すまん 誤爆した。
82 :
80 :2008/01/28(月) 12:04:16
すまん 誤爆した。
83 :
80 :2008/01/28(月) 12:09:40
すまん 誤爆した。
てすと
てすと
ActivePerl-5.10.0.1002-MSWin32-x86-283697.msi を保存して ダブルクイックすると 『インストール パッケージを開くことができませんでした。アプリケーションベンダに問い合わせ、このパッケージが有効なWindowsインストーラパッケージであることを確認してください。』 と出るのですが 何が問題あるのでしょうか
>>86 インストーラパッケージが壊れていまし。
保存のインスト不良でした
早とちり
で、しまったシマッタ!島倉千恵子!
(;^_^A フキフキ
とりあえず乙
>>86 亀レスだがそれはファイルが壊れてるだけ。
俺もこの前WIN再インスコしたときになった。
activeperlのある鯖が不安定っぽいからリジューム機能のついてるツール使ってダウソしたほうがいいよ。
90 :
デフォルトの名無しさん :2008/05/14(水) 13:50:09
test
91 :
デフォルトの名無しさん :2008/05/16(金) 17:59:54
クライアントがクッキーを受け入れているかどうかってどうやって判断しているんでしょうか?
92 :
デフォルトの名無しさん :2008/05/16(金) 20:42:21
食わせたクッキーを吐き出させればいいよ。
93 :
デフォルトの名無しさん :2008/08/22(金) 22:09:35
test
95 :
デフォルトの名無しさん :2008/08/31(日) 11:33:21
#!/usr/bin/perl
use warnings;
use strict;
use WWW::Mechanize;
my $url = '
http://pc11.2ch.net/test/read.cgi/tech/1184483810/ ';
my $mail = 'sage';
my $text = 'Hellow World;
my $mech = WWW::Mechanize->new;
$mech->agent_alias('Linux Mozilla');
$mech->get($url);
$mech->submit_form(
form_number => 2,
fields=>{
FROM => '',
mail => $mail,
MESSAGE => $text,
},
);
print $mech->content;
$mech->submit;
print $mech->content;
なんで、これでじゃかきこめないわけ?
hello world
97 :
デフォルトの名無しさん :2008/09/15(月) 20:22:15
ゆきさん、好きだ。
98 :
デフォルトの名無しさん :2008/10/10(金) 18:19:28
そんぽぷへるめ
99 :
デフォルトの名無しさん :2008/12/07(日) 20:49:28
http://pc11.2ch.net/test/read.cgi/software/1118219419/850 より
use utf8;
binmode STDOUT => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
use open IO => ":encoding(cp932)";
use Win32::IEAutomation;
use Encode;
$ie = Win32::IEAutomation->new( visible => 1, maximize => 0);
$ie->gotoURL('
http://pc11.2ch.net/test/read.cgi/software/1118219419/l1n ');
$ie->getTextBox('name:', 'FROM')->SetValue(encode('cp932', "名無しさん@お腹すいた") );
$ie->getTextBox('name:', 'mail')->SetValue('sage');
$ie->getTextArea('name:', 'MESSAGE')->SetValue(encode('cp932', "
>>845 \nソースきぼ〜ん") ) ;
$ie->getButton('name:', 'submit')->Click(1) ;
sleep(10);
$ie->getButton('name:', 'submit')->Click(1) ; # 初回投稿時の確認ウィンドウ用
Hellow World
test
Hellow world
Hellow Fuck!
うんこちんちん
Hellow Fuck!
Hellow Fuck!
Hellow Fuck!
test
Hellow Fuck!
Hellow Fuck!
111 :
デフォルトの名無しさん :2009/01/19(月) 09:19:05
じゃあ、PHPで書き込むにはどうしたらいいですか?
112 :
デフォルトの名無しさん :2009/01/19(月) 11:23:50
113 :
デフォルトの名無しさん :2009/01/19(月) 14:16:06
>>112 おお、ありがとうございます!! そのやり方も教えて下さい!!
114 :
デフォルトの名無しさん :2009/02/08(日) 18:28:52
じぐもとらせてください
スレ違い
WWW::Mechanize使わずにやろうとしたらどうなるんだろう。
117 :
デフォルトの名無しさん :2009/06/07(日) 15:00:39
Coco豚肉一辛カレー、ガーリックかけたらおいしかったけれど、全部食べきれなかった。
Hallo World!
Hello World!
Hello World!
Hello World! アヒャ
これならプロバイダ規制受けても書き込みできるな イヤッホウ
helohelo
hello worldww
hello worldww
hello worldww
hello worldww
teest
test2
hello world??
test
hello world??
てst
てst
test
test
137 :
デフォルトの名無しさん :2009/07/28(火) 22:22:06
姉歯さんのまんこは13センチ
138 :
デフォルトの名無しさん :2009/07/29(水) 00:31:09
>>> message = ' What's up, Mr?' >>> message 'What's up, Mr? >>> print message Wha's up, Mr?
139 :
デフォルトの名無しさん :2009/07/29(水) 00:33:05
>>> message = ' What's up, Mr?' >>> message 'What's up, Mr?' >>> print message Wha's up, Mr?
140 :
デフォルトの名無しさん :2009/07/29(水) 00:45:10
mit のコンピューター工学見てるひと いる?
141 :
デフォルトの名無しさん :2009/07/29(水) 00:54:46
ボクの目標は いろんなビデイオディスクの場面を つなげて いろんな ショートムービー とか つくる ソフトをつくることなんだ それを 発展させて 人工知能系に つなげる 英国f1とかの大画面モニター 1日中 遊んでるらしいから ジェット旅客機の 飛行中の映画モニターに映す 世界をつなげる ソフト 世界が一体感をもてる 世界平和に貢献できるようなそんな気がする それと コンピューター工学を基礎から考えることなんだ。 ぼくは タイムマシンとかつくって 現在光速で飛行中 自室のコックピットから 書き込んでる だから 時間はいっぱいあるんだ。
142 :
デフォルトの名無しさん :2009/07/31(金) 01:36:37
143 :
デフォルトの名無しさん :2009/10/28(水) 21:54:10
まんこ、めぐりあい。そしてかくれんぼ。
hello world
hello world
hello world
Hellow★World
hellow world
tes
テスト
ハロー ワーク
こんにちは、しごと
153 :
デフォルトの名無しさん :2010/04/05(月) 11:32:31
Hello%202ch%20%21
154 :
デフォルトの名無しさん :2010/04/05(月) 11:38:09
Hello%202ch%20%21
155 :
デフォルトの名無しさん :2010/04/05(月) 11:41:14
Hello%202ch%20%21
156 :
デフォルトの名無しさん :2010/04/05(月) 11:42:30
Hello%202ch%20%21
sage
Hello World !
Goobye World!
Hello World!!!
a
Hello World !!!!
%82%B1%82%F1%82%C9%82%BF%82%ED
sjis
sjis
hello
縺薙s縺ォ縺。繧?
%82%B1%82%F1%82%C9%82%BF%82%ED
縺薙s縺ォ縺。繧?
こんにちわ
こんにちわ
test
猿轡
175 :
デフォルトの名無しさん :2010/10/19(火) 16:03:09
Hell World
Hello Work
hahiふへローワール度
てす
い
181 :
デフォルトの名無しさん :2010/12/30(木) 20:09:05
はるぶんま。へぽめ。
182 :
デフォルトの名無しさん :2011/01/21(金) 06:06:28
183 :
182 :2011/01/21(金) 06:07:12
誤爆
地味に面白いスレであったw
tepo=don
188 :
test :2011/04/17(日) 23:30:39.26
!ninja
こうか
テスト
191 :
デフォルトの名無しさん :2011/04/23(土) 14:39:25.47
den=bo もうperl使って書き込む人はいないのか
Hello World
Hello World
Hello World
Hello World
縺薙s縺ゥ縺薙◎
だめだな。
198 :
デフォルトの名無しさん :2011/06/29(水) 19:43:58.10
test
48656C6C6F20576F726C64
200 :
デフォルトの名無しさん :2011/11/20(日) 14:26:58.36
?
201 :
デフォルトの名無しさん :2011/12/16(金) 16:50:48.08
LWPを使っての書き込みで詰まってます。
use utf8; use LWP; use Encode...;
my $ua = LWP::UserAgent->new(agent => "Monazilla/1.00 hoshu-bot.pl/$VERSION");
$ua->default_header(Referer => "
http://$c- >{host}.2ch.net/$c->{board}/");
sub sjis { encode('cp932', $_[0]) }
my $res = $ua->post("
http:// " . $c->{host} . ".2ch.net/test/bbs.cgi?guid=ON",
[
# パラメタ省略
submit=> sjis('書き込む'),
MESSAGE=> sjis($message),
],
Content_Type => "application/x-www-form-urlencoded; charset=Shift_JIS",
);
エンコードしてるはずなんですけどねえ。ちなみに全角2文字が8バイトで
出ます。考えられるのは、エンコードに失敗してるか、sjisをさらに
Unicodeにデコードしてそれを出してるかな気がするんですが。
202 :
デフォルトの名無しさん :2011/12/16(金) 16:51:54.57
あー書き忘れ。つまり書き込みには成功するんだけど文字化けしちゃうって ことです。
UAほしゅぼっとw もう解決しただろうなあ、がんばれー
a
hello world
ハローワールド
繝上Ο繝シ繝ッ繝シ繝ォ繝・
WWW-2ch なんてモジュールもあるのか
>>99 これってIEのバージョンは何で動くんだろ?
6か7か
9でも動いたが
helloworld
hello,world
はろーわーるど
214 :
niconico :2012/08/11(土) 04:12:58.61
という訳で晒しage
Hello わーるど
test
test tese test
test2
TEST
test004
221 :
デフォルトの名無しさん :2013/07/30(火) NY:AN:NY.AN
>大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。 島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて、心も身体も壊されて廃人同様になってしもうた僕が言うんやから、 まちがいないで。精神病院へ行っても、ちっとも良うならへん。教師も校長も、暴力やいじめがあっても見て見ぬフリ。 そればかりか、イジメに加担する教師もおった。 誰かがイジメを苦にして自殺しても、「本校にイジメは なかった」と言うて逃げるんやろうなあ。 島本町の学校の関係者は、僕を捜し出して口封じをするな >島本町って町は、暴力といじめの町なんだな >「口封じ」なんかしません。どうぞ、気が済むまでお書き込み下さい。 島本町は日本の恥!島本町は日本の迷惑!
222 :
デフォルトの名無しさん :2014/02/23(日) 02:55:15.70
223 :
デフォルトの名無しさん :2014/02/26(水) 07:36:36.74
おかしいね
7−8月ごろのレスがみんなそうなってるのを見た
225 :
デフォルトの名無しさん :2014/02/26(水) 22:29:23.27
何か壊れたのかね。
専ブラだとちゃんと見える
違うか、俺は過去ログ持ってるからちゃんと見えてるのか
228 :
デフォルトの名無しさん :2014/02/28(金) 22:03:18.81
過去ログ万歳
229 :
デフォルトの名無しさん :2014/03/01(土) 21:38:50.04
Perl使って書き込むのってそんなに難しくないような HTTP通信するモジュール入れて ブラウザからクッキーとフォームの内容をコピペしてPOST送信するだけだろ
230 :
デフォルトの名無しさん :2014/03/01(土) 21:46:06.24
じゃあ逆にしたら? 2chを使ってPerlにHello Worldを書き込む。 2chの力を結集して純正Perlのコードに採用されるってことにしたらいい。 これはちょっと難しいでしょ。
>>229 わざわざそんな面倒なことしなくてもwww
232 :
デフォルトの名無しさん :2014/03/03(月) 22:06:16.06
PHPのほうが簡単
233 :
デフォルトの名無しさん :2014/03/06(木) 06:41:45.14
234 :
デフォルトの名無しさん :2014/03/08(土) 18:45:17.11
Perlはオワコン産廃 初心者はPerlだけはやめとけ
熟練したPerl MongersたちはPerlから離れない ヤツらが真のPerl使いで、Larryから奥義を授かった伝承者
236 :
デフォルトの名無しさん :2014/11/09(日) 14:20:03.84 ID:iOEsToOb
2chハロワなんて書き込んで何がしたいんだ
スレを荒らしたいんだと
1ヶ月前くらいに作ったスクリプトから書き込めないんだが仕様変わった?