X



Perlを使って2ちゃんねるにHello Worldを書き込む
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん垢版2007/07/15(日) 16:16:50
俺、がんばる。みてて。
0003デフォルトの名無しさん垢版2007/07/15(日) 16:46:02
さて、httpをしゃべるライブラリには何を使ったら良いだろうか?
むかしLWP::Simpleを使ったことはあるとはいえ、
Simpleっていうぐらいだからもっと高度なことをするときには
別のものがいいのだろうか?
0007デフォルトの名無しさん垢版2007/07/15(日) 17:10:48
あぁ、やっとわかったよ。
http://d.hatena.ne.jp/keyword/curl

ライブラリとしてのlibcurl、それをコマンドラインから使用するcurl。
それとはまったく別の、次世代ウェブ記述言語Curlがあるんだね。

>>5さんがいっているのはコマンドライン用Curl?

悪くは無いんだけど、共有レンタルサーバーでも使えるようなやり方を
目指しているので。でもあとで使うよ!
0008デフォルトの名無しさん垢版2007/07/15(日) 17:15:09
ところで、phpではlibcurlを使うのかな?
とりあえず、必要と思われる機能は
UserAgentなどのヘッダやクッキーをいろいろ設定してhtmlを読み込む。
帰ってくるヘッダやクッキーを読み取れる機能。
まあ、シンプルじゃないライブラリなら大概、対応しているだろう。

あと個人的に、proxy対応、https対応のライブラリであってほしい。

さぁ、どんなライブラリがあるのか探すぞ!
0012獅子王垢版2007/07/15(日) 17:22:00
あの〜、ずいぶん久方ぶりの書き込みなんですけど僕もperlを使ってみたいなぁと思うんです。
だけどあの英語漬けのサイトで一体どうやればダウンロードできるのかわかりません。
誰か暇つぶしついでに教えていただけませんか?
0014デフォルトの名無しさん垢版2007/07/15(日) 17:23:55
>>11
Javaかぁ、もっと大規模なのを作るときは使うけど、
簡単なツールレベルだと、ちょっと重く感じるな。
あと共有サーバーじゃ大概つかえないし。
0016デフォルトの名無しさん垢版2007/07/15(日) 17:28:06
うほっ!らくだなw

http://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FLWP#i3

LWPで、「https://」で始まるSSL使用サイトにアクセスできますか?
編集
できます。

LWPはCrypt::SSLeayがインストールされていれば、自動的にSSL使用サイトへのアクセスも適切に処理してくれます。
アクセス先が「https://」で始まっていても、スクリプトを変える必要はまったくありません。
それどころか、プロトコルが「http」か「https」かということすら判定する必要はありません。
0017デフォルトの名無しさん垢版2007/07/15(日) 17:37:42
よし、たいしたことができないであろう、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";
}
0021デフォルトの名無しさん垢版2007/07/15(日) 18:22:23
あれ?>>20のやつVistaで動かない。XP上のIE7なら動いていたんだが・・・
まあ、それならそれでFirefoxのやつつかうけどさ
0022デフォルトの名無しさん垢版2007/07/15(日) 19:00:03
とりあえず、クッキーとか何も持っていない状態でブラウザから普通に書き込むと、
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" がセットされており、
送信するときに、上記のクッキーを送っている。まあ無視して良いだろう。
0023デフォルトの名無しさん垢版2007/07/15(日) 19:05:53
WWW::2chに書き込み機能は相変わらず無いのか?
0024デフォルトの名無しさん垢版2007/07/15(日) 19:10:52
>>23
そんなのがあるのかw あとでみてみる。


2ちゃんねるを知っている人には当たり前だろうが、
初めて書き込むときには、「上記全てを承諾して書き込む」がでる。
クッキー名hanaにmogeraが設定されているかどうかで判断されるようだ。
これは今現在の話なので将来は変わる?スレごとに違うのかな?

とりあえずクッキーを持たずに書き込むと飛ばされる「上記全てを承諾して書き込む」ページには
>>22で送られる内容にくわえ、hiddenでhana=mogeraが追加されている。(subject=""もあるがスレ立て時に使われるのか?)
そこらへんを見れば、クッキー名や値が変わっても対応できるのかもしれない。
0025デフォルトの名無しさん垢版2007/07/15(日) 19:16:15
どうやら、書き込むときに
hana=mogera と
PON = 俺のホスト名 が
無ければいけないようだ。

hana=mogeraはさっきも書いたように同意するかどうか、
PONが変わる(つまり回線をつなぎなおしたとき)は確認画面に飛ばされる。

HAPはなんだろう?無くても書き込めるようだがまたセットさせられる。
さてぐぐるかw
0026デフォルトの名無しさん垢版2007/07/15(日) 19:28:22
そういや、ルータを使っている場合に自分のホスト名って
(外部のサーバーなしに)取得できるんかいな?

ルータのUPnP機能に問い合わせればわかるようなことを
以前見た気がするが・・・

まあ、2ちゃんねるに限れば、普通にアクセスして
戻ってきたクッキーをちゃんと記憶すればいいだろうけど。
0027デフォルトの名無しさん垢版2007/07/15(日) 20:00:15
ふう。風呂はいっていたよ。

さてのんびりやるぞ!

これからの投稿予定は次のとおりとなっております。お楽しみに。

・POSTを使ったデータ送信
・クッキーの取得
・クッキーの送信
・書き込めた!
・やっぱ文字コードはUNICODEでしょ!
・BASIC認証がある場合は・・・
・それ以外認証ページは・・・
・httpsページにトライ!
・そしてphp版へ・・・
・そしてCurl版へ・・・
0029デフォルトの名無しさん垢版2007/07/15(日) 21:19:28
>>27
Perl で書けたのであれば Curl はやらなくて良いと思うよ。
それより書き込みだけじゃなく、スレ立ても出来る様になると嬉しいんじゃない?
0031デフォルトの名無しさん垢版2007/07/15(日) 22:04:46
どうも荒らしスクリプトを作ろうと思っている様にしか思えんなぁ。
そもそも人にきかなきゃわからんレベルの人間がやるものでもないし。
0033デフォルトの名無しさん垢版2007/07/15(日) 22:22:52
何でもしたり顔でケチ付けようとする人間はいるもんだよ
自分でも言ってる意味が分かってないから、反論しても無駄
0035デフォルトの名無しさん垢版2007/07/15(日) 22:51:57
何事にも必死に取り組まなければ2ちゃんねらになっちゃう!!

そう子供たちに教えるべきだね。
0045デフォルトの名無しさん垢版2007/07/16(月) 16:25:06
はいはい、またーりいくよ。
テスト用に、サーバーに送信したデータをそのまま表示するだけの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はダウンロードしやがるぜ。けっ
0046デフォルトの名無しさん垢版2007/07/16(月) 20:07:51
さあて、いよいよ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;
0050デフォルトの名無しさん垢版2007/07/16(月) 22:22:18
うーん。postするときのtimeの数字ってなんだろう?
日付に直すと Sun, 02 Jan 2005 17:55:08 GMT なんだが、
どこから取得すればいいのだ?
htmlのフォームから取得できるのはわかるが・・・
0061デフォルトの名無しさん垢版2007/07/27(金) 01:20:27
>>60
書き込めるようになって、飽きました。
0064ヒッキーの達人 ◆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;
}
0066デフォルトの名無しさん垢版2007/07/29(日) 20:52:03
ヒント:全角スペース
0071デフォルトの名無しさん垢版2008/01/10(木) 11:13:45
>>22
これってどうやって調べたん?
0077デフォルトの名無しさん垢版2008/01/15(火) 05:42:50
cgiからも書き込めるようにしてみた。
だからアク禁くらってもレンタルサーバーにcgiぶっこめばいくらでも書き込める。
008180垢版2008/01/28(月) 12:02:46
すまん
誤爆した。
008280垢版2008/01/28(月) 12:04:16
すまん
誤爆した。
008380垢版2008/01/28(月) 12:09:40
すまん
誤爆した。
0086デフォルトの名無しさん垢版2008/03/19(水) 02:51:43
ActivePerl-5.10.0.1002-MSWin32-x86-283697.msi
を保存して
ダブルクイックすると
『インストール パッケージを開くことができませんでした。アプリケーションベンダに問い合わせ、このパッケージが有効なWindowsインストーラパッケージであることを確認してください。』  と出るのですが
何が問題あるのでしょうか
0087うっかり八兵衛垢版2008/03/19(水) 06:04:17
>>86 
インストーラパッケージが壊れていまし。
保存のインスト不良でした
早とちり
で、しまったシマッタ!島倉千恵子!
(;^_^A フキフキ
0089デフォルトの名無しさん垢版2008/03/29(土) 00:38:42
>>86
亀レスだがそれはファイルが壊れてるだけ。
俺もこの前WIN再インスコしたときになった。
activeperlのある鯖が不安定っぽいからリジューム機能のついてるツール使ってダウソしたほうがいいよ。
0090デフォルトの名無しさん垢版2008/05/14(水) 13:50:09
test
0091デフォルトの名無しさん垢版2008/05/16(金) 17:59:54
クライアントがクッキーを受け入れているかどうかってどうやって判断しているんでしょうか?
0092デフォルトの名無しさん垢版2008/05/16(金) 20:42:21
食わせたクッキーを吐き出させればいいよ。
0093デフォルトの名無しさん垢版2008/08/22(金) 22:09:35
test
0095デフォルトの名無しさん垢版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;
なんで、これでじゃかきこめないわけ?
0097デフォルトの名無しさん垢版2008/09/15(月) 20:22:15
ゆきさん、好きだ。
0098デフォルトの名無しさん垢版2008/10/10(金) 18:19:28
そんぽぷへるめ
0099デフォルトの名無しさん垢版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) ; # 初回投稿時の確認ウィンドウ用

0105hage垢版2008/12/10(水) 03:14:51
Hellow Fuck!
0106hage垢版2008/12/10(水) 03:26:37
Hellow Fuck!
0107hage垢版2008/12/10(水) 03:34:42
Hellow Fuck!
0109hage垢版2008/12/10(水) 03:36:04
Hellow Fuck!
0110hage垢版2008/12/10(水) 05:40:53
Hellow Fuck!
0111デフォルトの名無しさん垢版2009/01/19(月) 09:19:05
じゃあ、PHPで書き込むにはどうしたらいいですか?
0113デフォルトの名無しさん垢版2009/01/19(月) 14:16:06
>>112
おお、ありがとうございます!! そのやり方も教えて下さい!!
0114デフォルトの名無しさん垢版2009/02/08(日) 18:28:52
じぐもとらせてください
0117デフォルトの名無しさん垢版2009/06/07(日) 15:00:39
Coco豚肉一辛カレー、ガーリックかけたらおいしかったけれど、全部食べきれなかった。
0137デフォルトの名無しさん垢版2009/07/28(火) 22:22:06
姉歯さんのまんこは13センチ
0138デフォルトの名無しさん垢版2009/07/29(水) 00:31:09
>>> message = ' What's up, Mr?'
>>> message
'What's up, Mr?
>>> print message
Wha's up, Mr?
0139デフォルトの名無しさん垢版2009/07/29(水) 00:33:05
>>> message = ' What's up, Mr?'
>>> message
'What's up, Mr?'
>>> print message
Wha's up, Mr?
0140デフォルトの名無しさん垢版2009/07/29(水) 00:45:10
mit のコンピューター工学見てるひと いる?
0141デフォルトの名無しさん垢版2009/07/29(水) 00:54:46
ボクの目標は いろんなビデイオディスクの場面を つなげて いろんな
ショートムービー とか つくる ソフトをつくることなんだ
それを 発展させて 人工知能系に つなげる
英国f1とかの大画面モニター 1日中 遊んでるらしいから
ジェット旅客機の 飛行中の映画モニターに映す
世界をつなげる ソフト
世界が一体感をもてる 世界平和に貢献できるようなそんな気がする
それと コンピューター工学を基礎から考えることなんだ。

ぼくは タイムマシンとかつくって 現在光速で飛行中 自室のコックピットから 書き込んでる だから 時間はいっぱいあるんだ。 
0142デフォルトの名無しさん垢版2009/07/31(金) 01:36:37
>>140
それがどうした?
0143デフォルトの名無しさん垢版2009/10/28(水) 21:54:10
まんこ、めぐりあい。そしてかくれんぼ。
0144test垢版2009/11/05(木) 18:26:43
hello world
0153デフォルトの名無しさん垢版2010/04/05(月) 11:32:31
Hello%202ch%20%21
0154デフォルトの名無しさん垢版2010/04/05(月) 11:38:09
Hello%202ch%20%21
0155デフォルトの名無しさん垢版2010/04/05(月) 11:41:14
Hello%202ch%20%21
0156デフォルトの名無しさん垢版2010/04/05(月) 11:42:30
Hello%202ch%20%21
0175デフォルトの名無しさん垢版2010/10/19(火) 16:03:09
Hell World
0181デフォルトの名無しさん垢版2010/12/30(木) 20:09:05
はるぶんま。へぽめ。
0183182垢版2011/01/21(金) 06:07:12
誤爆
0191デフォルトの名無しさん垢版2011/04/23(土) 14:39:25.47
den=bo

もうperl使って書き込む人はいないのか
0198デフォルトの名無しさん垢版2011/06/29(水) 19:43:58.10
test
0200デフォルトの名無しさん垢版2011/11/20(日) 14:26:58.36
0201デフォルトの名無しさん垢版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にデコードしてそれを出してるかな気がするんですが。
0202デフォルトの名無しさん垢版2011/12/16(金) 16:51:54.57
あー書き忘れ。つまり書き込みには成功するんだけど文字化けしちゃうって
ことです。
0214niconico垢版2012/08/11(土) 04:12:58.61
という訳で晒しage
0221デフォルトの名無しさん垢版2013/07/30(火) NY:AN:NY.AN
>大阪府三島郡島本町の小学校や中学校は、暴力イジメ学校や。
島本町の学校でいじめ・暴力・脅迫・恐喝などを受け続けて、心も身体も壊されて廃人同様になってしもうた僕が言うんやから、
まちがいないで。精神病院へ行っても、ちっとも良うならへん。教師も校長も、暴力やいじめがあっても見て見ぬフリ。
そればかりか、イジメに加担する教師もおった。 誰かがイジメを苦にして自殺しても、「本校にイジメは
なかった」と言うて逃げるんやろうなあ。
島本町の学校の関係者は、僕を捜し出して口封じをするな

>島本町って町は、暴力といじめの町なんだな

>「口封じ」なんかしません。どうぞ、気が済むまでお書き込み下さい。

島本町は日本の恥!島本町は日本の迷惑!
0222デフォルトの名無しさん垢版2014/02/23(日) 02:55:15.70
>>221
この人の時刻おかしくない?
0223デフォルトの名無しさん垢版2014/02/26(水) 07:36:36.74
おかしいね
0225デフォルトの名無しさん垢版2014/02/26(水) 22:29:23.27
何か壊れたのかね。
0228デフォルトの名無しさん垢版2014/02/28(金) 22:03:18.81
過去ログ万歳
0229デフォルトの名無しさん垢版2014/03/01(土) 21:38:50.04
Perl使って書き込むのってそんなに難しくないような
HTTP通信するモジュール入れて
ブラウザからクッキーとフォームの内容をコピペしてPOST送信するだけだろ
0230デフォルトの名無しさん垢版2014/03/01(土) 21:46:06.24
じゃあ逆にしたら?

2chを使ってPerlにHello Worldを書き込む。

2chの力を結集して純正Perlのコードに採用されるってことにしたらいい。
これはちょっと難しいでしょ。
0232デフォルトの名無しさん垢版2014/03/03(月) 22:06:16.06
PHPのほうが簡単
0233デフォルトの名無しさん垢版2014/03/06(木) 06:41:45.14
>>1
馬鹿には無理
0234デフォルトの名無しさん垢版2014/03/08(土) 18:45:17.11
Perlはオワコン産廃
初心者はPerlだけはやめとけ
0235デフォルトの名無しさん垢版2014/03/08(土) 20:30:01.60
熟練したPerl MongersたちはPerlから離れない
ヤツらが真のPerl使いで、Larryから奥義を授かった伝承者
0236デフォルトの名無しさん垢版2014/11/09(日) 14:20:03.84ID:iOEsToOb
2chハロワなんて書き込んで何がしたいんだ
0239デフォルトの名無しさん垢版2015/07/30(木) 20:21:58.25ID:Gg/H0igC
アッー 夏休み
0240デフォルトの名無しさん垢版2015/08/06(木) 23:12:26.97ID:4IBTADIH
書き込めるかどうかの簡易テストをやったんだけど書けないんだ。
アドバイスくれる人いるかな。
いるならソース書く
0241デフォルトの名無しさん垢版2015/08/07(金) 01:18:28.41ID:h8EySD2z
httpd立ち上げてlocalhostに対しての入出力は成功したけど、
どうも2ちゃんには弾かれる。
書き込みましたと言うメッセージだけは出るんだが。
0242デフォルトの名無しさん垢版2015/08/08(土) 02:52:09.47ID:fWz/uAIX
予想外の事態だ。
普通のブラウザからの書き込みも弾かれてた。
専ブラじゃないと書き込めねぇ。
こりゃ無理かな
0243デフォルトの名無しさん垢版2015/08/08(土) 03:49:01.73ID:fWz/uAIX
test
0244デフォルトの名無しさん垢版2015/08/08(土) 08:23:22.54ID:fWz/uAIX
test-
0245デフォルトの名無しさん垢版2015/08/08(土) 08:50:05.21ID:fWz/uAIX
test3
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況