スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

--年--月--日 スポンサー広告 トラックバック:- コメント:-

2ちゃんねる忍法帖のレベル上げ

2ちゃんねるでは忍法帖というシステムが導入されています。 レベルによって連投制限・スレ立て制限などがされています。

詳しくは
忍法帖巻物 - いきいき Wiki
http://info.2ch.net/wiki/index.php?%C7%A6%CB%A1%C4%A1%B4%AC%CA%AA

今回はレベル上げスクリプトを作ってみました。とはいってもネット上で拾ったものを少々改変しただけです(この方のスクリプトです→ http://2chbeginner.blog65.fc2.com/blog-entry-19.html )。 パクリになるといけないので全てのソースは載せないことにします。

実行してみたらエラーが出たので要らない部分を削るなど簡略化していったら動くレベルになりました。 今回は「●を扱うモジュール」と「書き込みを扱うモジュール」だけを使用しました。

変更したのは「バグ取り」、 「クッキーに適当な名前を付けて、 autosave=>1」 にするくらいです。 Mopechan.pm,MopeSample.plだけ書き換え、それだけを使用しました。

MopeSample.plの変更部分はここです。

my $times = time();
my $cookie_file="cookies" . $times .  ".txt";
$mopechan->setCookieName($cookie_file);
$mopechan->write;
$mopechan->write;
print $mopechan->getResponse, "\n\n";
sleep(121);
my $level=0;
while($level < 30){
 $mopechan->write;
 print $mopechan->getResponse, "\n\n";
 print $mopechan->getCookie, "\n\n";
 sleep(910);
 $level++;
}

ちなみにこれは「お試し●」でのレベル上げです。「●」の場合は910の所を185くらいに変えてればいいんじゃないでしょうか。 「お試し●」の場合、7,8時間ほどでレベル30のHAPの完成です。

関連タグ : perl, 2ch,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2011年05月15日 ウェブサイト トラックバック:2 コメント:1

2ちゃんねる女優板のどんなスレッドが削除されているか調べた

女優板で最近スレッド削除されたものをまとめます。 削除されたスレッドにアクセスした場合、 タイトルが「2ちゃんねる error 3001」で 「datが存在しません。削除されたかURL間違ってますよ。」 と表示されているページに飛ばされるようです。

スレタイを載せるには問題があるスレッドばかりなので、多くを伏字にしています。 「削除ガイドライン5」をGL5、その板の「ローカルルール」をLRと略記することにします。

続きを読む

関連タグ : 2ch,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月26日 ウェブサイト トラックバック:0 コメント:0

perlでウェブページのスクリーンショット保存アップロードし一覧にしてhtml出力

perlを使って、ウェブサイトのスクリーンショットを取りそれをアップロードして一覧表示するHTMLを出力します。ブラウザで見るとこんな感じの↓

スクリーンショット保存はコマンドライン上からウェブサイトのスクリーンショットが保存できるウィンドウズ向けソフト「SiteShoter」を使いました。ずるですね。たぶん、UNIXもコマンドライン上でそんなことができるソフトきっとあると思います・・・。 以下が雑なソースコードです。動きゃいいんです。

# このプログラムを動かすには SiteShoter.exe を
# サーチパスに通している必要があります。
 
#!/usr/bin/perl.exe
use utf8;
binmode STDOUT => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
use open IO => ":encoding(cp932)";
use Encode;
use warnings;
use URI::Escape;
use WWW::Mechanize;

$id='***********'; # your id or email address
$password="********"; # password 

my $mech = new WWW::Mechanize( autocheck => 1 );
$mech->agent_alias('Windows IE 6');

print "paste URLs:\n ";
@target_url = <>;
@target_url = grep(!/^\s*\n/,@target_url);
print "start[enter]";
<>;

for($j=0; $j <= $#target_url; $j++){
  chomp($target_url[$j]);
  $title[$j]=gettitle($target_url[$j]);
  print "get title\n";
  ## save screenshot of website
  $filename[$j]=scr($target_url[$j], "png");
  print "get scr\n";
}
print "edit image. press enter.\n";
<>;

# login fc2.com
&login_fc2($id, $password);

# get upload page
$mech->get('/control.php?mode=control&process=upload');

# upload screenshot
$total=scalar(@filename);
$f_num=0;
while($f_num < $total){
 $form=$mech->form_name('upload');
 $width_input = $form->find_input('width');
 $width_input->value('300'); 
 $height_input = $form->find_input('height');
 $height_input->value('500');
 $thumb_check = $form->find_input('thumb');
 $thumb_check->check; 
 for($i_num=1; $i_num<=5 && $f_num<$total; $i_num++, $f_num++){
  $mech->set_fields( 'upfile[]' => [ $filename[$f_num], $i_num ],);
  print "set $filename[$f_num]\n";
 }
 print "\n";
 print "uploading\n";
 $mech->submit();
 print "uploaded\n\n";
 $html=$mech->content();
 while ( $html =~ /<span class=\"style_error\">.+?(http:[-_\/a-zA-Z0-9\.]+)<\/span>/g)
 { @list=(@list,$1); }
}

@img_url=reverse(@list);

# print results 
print "<ul>\n";
for (my $j=0; $j<$total; $j++ ){
 print "<li>";
 print $title[$j] . "<br />";
 print "<a href=\"" . $target_url[$j] . "\">" . $target_url[$j] . "</a>";
 print "<br />";
 my $small =  $img_url[$j];
 $small =~ s/\.(jpg|gif|png)/s\.$1/ ; 
 print '<a href="' . $img_url[$j] . '">';
 print '<img src="' . $small . '">';
 print "</a></li>\n";
}
print "</ul>";

###############################################
###############################################

# get title
sub gettitle{
 $mech->get($_[0]);
 return $mech->title();
}

# login fc2.com
sub login_fc2{
 my ($id, $pass) = @_;
 $login_page="http://fc2.com/login.php?ref=blog";
 $mech->get($login_page);
 $mech->submit_form(
         form_name => 'form_login',
		 fields    => {
		  'id'   => $id,
		  'pass' => $pass,
		 },
	    );
}


# ウェブページのスクリーンショットを保存しファイル名を返す
sub scr{
   my ($url, $type) = @_; 
   my $filename= $url . "." . $type;
   $filename =~ s/\.(?![a-z0-9]+$)|\//_/g;
   $filename =~ s/https?://g;
   $filename =~ s/\?/_/g;
   $filename =~ s/\&/_/g;
   $filename =~ s/=/_/g;
   $filename =~ s/\%/_/g;
   $filename =~ s/^_*//g;
   print "$filename\n";
   if($type =~ /jpe?g/){
     `SiteShoter.exe /URL \"$url\" /Filename $filename /JpegQuality 80 /BrowserAutoSize 1`;
	  return $filename;
   } 
   else{
        `SiteShoter.exe /URL \"$url\" /Filename $filename /BrowserAutoSize 1`;
        return $filename;
   }
}

URLに半角アンド(アンパサンド?)が含まれているとそれまでをコマンドと見てバックグラウンド処理しちゃうので(UNIXだとこんなコマンドよく使いますよね?→「 firefox &」)「"」で括らなきゃいけなかったのが難所でした。 最大の難所は、アップロードして取得した画像のURLをリストで取得してそれが逆順になってること。 なんでか謎ですが、逆になってるということでreverseしました(笑)とりあえず動けばいいがMOTTOなので・・・。

実行例です。

$ perl tes.pl
paste URLs:
http://www.google.co.jp/
http://twitter.com/
http://yahoo.co.jp

start[enter]
get title
www_google_co_jp_.png
get scr
get title
twitter_com_.png
get scr
get title
yahoo_co_jp.png
get scr
edit image. press enter.

set www_google_co_jp_.png
set twitter_com_.png
set yahoo_co_jp.png

uploading
uploaded

<ul>
<li>Google<br /><a href="http://www.google.co.jp/">http://www.google.co.jp/</a><br /><a href="http://blog-imgs-45.fc2.com/l/h/l/lhlhlh/www_google_co_jp_.png"><img src="http://blog-imgs-45.fc2.com/l/h/l/lhlhlh/www_google_co_jp_s.png"></a></li>
<li>Twitter<br /><a href="http://twitter.com/">http://twitter.com/</a><br /><a href="http://blog-imgs-45.fc2.com/l/h/l/lhlhlh/twitter_com_.png"><img src="http://blog-imgs-45.fc2.com/l/h/l/lhlhlh/twitter_com_s.png"></a></li>
<li>Yahoo! JAPAN<br /><a href="http://yahoo.co.jp">http://yahoo.co.jp</a><br /><a href="http://blog-imgs-45.fc2.com/l/h/l/lhlhlh/yahoo_co_jp.png"><img src="http://blog-imgs-45.fc2.com/l/h/l/lhlhlh/yahoo_co_jps.png"></a></li>
</ul>

関連タグ : perl,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月17日 windows トラックバック:1 コメント:0

Web サイトのスクリーンショットを作成するためのコマンドラインツール がウインドウズでも動いた

この方が Web サイトのスクリーンショットを作成するためのコマンドラインツール というのを作ったそうなので使っていました。ウィンドウズ,Cygwinで動作検証します。

まずはXULRunnerをダウンロードします。 自分のOSはウインドウズなので、 Index of /pub/mozilla.org/xulrunner/releases/1.9.2.13/runtimes からxulrunner-1.9.2.13.en-US.win32.zip をダウンロードしました。

xulrunner-1.9.2.13.en-US.win32.zip を 解凍したらxulrunnerというフォルダができているので それを置きたいフォルダに移動させました。 自分は /usr/local/bin/ (ウィンドウズで言えば、C:\cygwin\usr\local\bin ) へコピーし、 /usr/local/bin/xulrunner (xulrunner.exeが入っている)をサーチパスに追加しました。 ここからコマンドライン上で操作します。

export PATH=$PATH:/usr/local/bin/xulrunner

ここに書かれている通りに、作者がつくってくれた web_capture をホームディレクトリにダウンロードしました。

cd ~/
git clone git://github.com/jugyo/web_capture.git

Cloning into web_capture...
remote: Counting objects: 51, done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 51 (delta 16), reused 0 (delta 0)
Receiving objects: 100% (51/51), 6.50 KiB, done.
Resolving deltas: 100% (16/16), done.

gitを始めて使ったけど、 gitが使えなくても、web_capture内のファイルを根こそぎダウンロードすればそれでうまくいきそうな雰囲気。

実行してみます。

xulrunner web_capture/application.ini  \
-url http://bit.ly/ -file bit_ly_screenshot.jpg -type jpeg 

一瞬、ウェブページの画面が出現しすぐに閉じます。ちゃんと bit_ly_screenshot.jpg の名前でスクリーンショットが撮れていました。

ちなみに、bashやcygwinで使われるような絶対パス /home/xxxx/web_capture/application.ini や ~/web_capture/application.ini で書くとエラーが出ました。 普通に相対パスで書けばOKでした。 絶対パスで書くなら、ウインドウズみたいに "C:\..." で書いたらいいのだろうなと思い、試しみたら出来ました。

xulrunner \
"C:\Documents and Settings\Administrator\My Documents\web_capture\application.ini" \
-url http://google.com -file bit_ly_screenshot.jpg -type jpeg

ウインドウズのをcygiwinに流用してるから当然なのかも。コマンドプロンプトならそれは問題にならないのかも。

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月15日 windows トラックバック:1 コメント:0

perlを使い、 ファイル名に含まれるドット"."やスラッシュ"/"をアンダーバー"_"にしてリネームした

何かをダウンロードしたり、スクリーンショットをとったりすると、 ファイル名にドットがあったり、スラッシュがあることがありませんか? そのときのためにファイル名を変換するプログラムをperlで書きました。短いですが。

#!/usr/bin/perl
use utf8;
use strict;
use warnings;

for my $new (@ARGV){
      my $old = $new;
      $new =~ s/\.(?![a-z0-9]+$)|\//_/g;
      rename $old , $new;
      print $old ." => " . $new . "\n" ;
}

実行例です。

$ perl test.pl 1.2.3.txt a.b.ccc.ddd.txt
1.2.3.txt => 1_2_3.txt
a.b.ccc.ddd.txt => a_b_ccc_ddd.txt
$ ls  1_2_3.txt  a_b_ccc_ddd.txt
1_2_3.txt  a_b_ccc_ddd.txt

もう一つ実行例。3秒くらいで終わりました。

$ touch  0.{0..10}.{a..z}.txt; perl test.pl 0.{0..10}.{a..z}.txt
0.0.a.txt => 0_0_a.txt
0.0.b.txt => 0_0_b.txt
(省略)

もちろん、*.tar.gz などには対応しておりませんし、上書きチェックも行いません。 そのへんは注意したほうがいいと自分で思いました。でも、ウェブページのスクリーンショットをURL名で 保存したものをfc2ブログにアップできるようにリネームできるようにしたい目的は十分に達せられたと思っています。大量にウェブページのスクリーンショット撮るならscreenshoterが便利です。

本当はperl使うほどじゃないかなとsedですまそうと思っていたんだけど、先読みできないっぽくて無理でした。 たぶん、正規表現メモにも載ってないから できないのだろうと思います。ずっと mv -i $1 `echo $1 | sed 's/\.(?![a-z0-9]+$)|\//_/g'` を実行してなぜできないか悩みました。

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月15日 windows トラックバック:1 コメント:0

perlでツイートしてみた

perlを使ってtwitterでつぶやいてみます。 完全にこのサイトをまねしました。

windows環境下だとだいたい文字コードはshiftjisですよね。 そんなわけで少し書き換えました。

#!/usr/bin/perl
use utf8;
use strict;
binmode STDOUT => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
use open IO => ":encoding(cp932)";
use warnings;
use Encode;
use Net::Twitter;

my $consumer_key='**********************';
my $consumer_secret='********************************';
my $access_token ='**************************************';
my $access_token_secret='*************************************';
my $twit = Net::Twitter->new(
    traits => [qw/API::REST OAuth WrapError/],
    consumer_key    => $consumer_key,
    consumer_secret => $consumer_secret,
    ssl => 1,
);
$twit->access_token       ($access_token);
$twit->access_token_secret($access_token_secret);
for my $tweet (@ARGV){
  my $tw_dec= decode('shiftjis', $tweet);
  my $tw_len= length($tw_dec);
  if($tw_len <= 140){
     $twit->update($tw_dec);
	 print "successed\n";
  }
  else {
     print "failed: your tweet is over 140 letters(", $tw_len, ")\n";
  }
}

まだ試してないのですが、 twittershell - search.cpan.orgtwpin - search.cpan.orgが便利かも。

関連タグ : perl,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月12日 ウェブサイト トラックバック:0 コメント:0

perlでfc2ブログに画像をアップロードしてみた

WWW::Mechanizeを使ってfc2ブログにファイルをアップロードしてみました。プログラム言語はperlです。 それなりに動くと思います。お前の英語はなっとらんとかは見逃してください。

use utf8;
binmode STDOUT => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
use open IO => ":encoding(cp932)";
use Encode;
use warnings;
use URI::Escape;
use WWW::Mechanize;

$id="*********************"; # your id or email address
$password="***************"; # your password 
$"="\n";

my $mech = new WWW::Mechanize( autocheck => 1 );
$mech->agent_alias('Windows IE 6');

# login fc2.com
&login_fc2($id, $password);

# get upload page
$mech->get('/control.php?mode=control&process=upload');

# confirm
$total = scalar(@ARGV);
print "tatal: $total file\n";
print "@ARGV\n\n";

# upload 
$num=0;
while($num < $total){
 for($inum=1; $inum<=5 && $num<$total; $inum++, $num++){
  $mech->set_fields( 'upfile[]' => [ $ARGV[$num], $inum ],);
  print "set $ARGV[$num]\n";
 }
 print "\n";
 print "uploading\n";
 $mech->submit();
 print "uploaded\n\n";
 @list =(@list,($mech->content() =~ /<span class=\"style_error\">.+?(http:[-_\/a-zA-Z0-9\.]+)<\/span>/g));
}

# print results 
for $img_url (@list){
 $small = $img_url; 
 $small =~ s/\.jpg/s\.jpg/ ; 
 print "<a href=\"" . $img_url . "\"><img src=\"" . $small . "\"><br />\n";
}

# login fc2.com
sub login_fc2{
 my ($id, $pass) = @_;
 $login_page="http://fc2.com/login.php?ref=blog";
 $mech->get($login_page);
 $mech->submit_form(
         form_name => 'form_login',
		 fields    => {
		  'id'   => $id,
		  'pass' => $pass,
		 },
	    );
}

実行:
$ perl fc2upload.pl *.jpg

結果:

<a href="http://blog-imgs-xx.fc2.com/x/x/x/xxxxxxxxx/1.jpg"><img src="http://blog-imgs-37.fc2.com/x/x/x/xxxxxxxxx/1s.jpg"><br />
<a href="http://blog-imgs-xx.fc2.com/x/x/x/xxxxxxxxx/2.jpg"><img src="http://blog-imgs-37.fc2.com/x/x/x/xxxxxxxxx/2s.jpg"><br />

続きを読む

関連タグ : perl,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月09日 ウェブサイト トラックバック:0 コメント:0

flickrが1ヶ月あたり300MB画像アップロード可能になったっぽい(以前は100MB)

英語面倒だからあまりよんでないが、これは正しいですよね?月300MBアップロードできるなんて、flickrの時代の到来の予感。

http://www.flickr.com/help/limits

fc2ブログがファイル容量追加申請ができるようですね。最近気づいた。 一方、フォト蔵は何日か前に画像が表示されないトラブルがありましたね。月1GBとは言っても、安定してるflickrに ぶがあるか。

関連タグ : flickr,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年12月03日 ウェブサイト トラックバック:0 コメント:0

urlエンコードしてwikipediaの記事へのリンクを出力(perl)

use utf8;
binmode STDOUT => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
use open IO => ":encoding(cp932)";
use Encode;

while ($name=<>) {
 chomp($name);
 print "<a href=\"http://ja.wikipedia.org/wiki/" . my_urlencode_utf8($name) . "\"><strong>" . $name . "</strong></a>\n"
}

sub my_urlencode_utf8
{
my($tmp) = @_;
$tmp = Encode::encode('utf8',$tmp);
$tmp =~ s/([^・・w])/'%'.unpack("H2", $1)/ego;
$tmp =~ tr/ /+/;
$tmp = Encode::decode('utf8',$tmp);
return($tmp);
}
結果:
$ perl e.pl
ウィキペディア
アンサイクロペディア
<a href="http://ja.wikipedia.org/wiki/%e3%82%a6%e3%82%a3%e3%82%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2"><strong>ウィキペディア</strong></a>
<a href="http://ja.wikipedia.org/wiki/%e3%82%a2%e3%83%b3%e3%82%b5%e3%82%a4%e3%82%af%e3%83%ad%e3%83%9a%e3%83%87%e3%82%a3%e3%82%a2"><strong>アンサイクロペディア</strong></a>

参考サイト: perlのUTF8プログラミングでのURLエンコード(perl)

関連タグ : perl,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年11月28日 未分類 トラックバック:0 コメント:0

WWW::Mechanize を使ってウェブ魚拓でキャッシュ取得させてみた

WWW::Mechanize を使ってウェブ魚拓でキャッシュ取得させてみました。

use utf8;
binmode STDOUT => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
use open IO => ":encoding(cp932)";
use Encode;
use WWW::Mechanize;

my $webgyotaku='http://megalodon.jp/pc/get_simple/confirm?url=';
my $target_url='http://lhlhlh.blog71.fc2.com/blog-entry-110.html';

my $mech = new WWW::Mechanize( autocheck => 1 );
$mech->agent_alias('Windows IE 6');
$mech->get($webgyotaku.$target_url);
$mech->submit_form(
       form_number => 2,
);
@list=$mech->links();
$gyotaku= undef;
for $link (@list){
 if($link->text() =~ $target_url ){
    $gyotaku=$link->url();
 }
}
print "<a href=\"".$target_url."\">".$target_url."</a>";
print "(<a href=\"".$gyotaku."\">cache</a>)\n";

関連タグ : perl,

このエントリーを含むはてなブックマーク Googleブックマークに登録 Yahoo!ブックマークに登録 livedoorクリップに登録 buzzurlに登録

2010年11月27日 ウェブサイト トラックバック:0 コメント:0

| 広い意味でコンピュータ関係のブログTOP |

| このページの上へ |» 次のページ