木曜日, 3月 31, 2022
dolphinエミュレータでCTGP Revolutionがやりたい人の代替案を見つける夢を見た【Mario Kart Fun】
pcやandroidのdolphinエミュレータでCTGP Revolutionがやりたいと思ってもdolphinエミュレータに対応しておらず、諦めてwii本体やwiiu本体を引っ張り出さざるを得なくなり、憂鬱になってしまうと思います。もちろんCTGP Revolutionをdolphinエミュレータで実行する方法は現時点では無いと思いますが、その代わりとなり得るものを見つけ、そこそこ快適だった夢を見たため紹介しようと思います。
何をするのか
Wiimms Mario Kart Funというものを導入します。これはマリオカートのisoデータにパッチを当ててコースを追加するという手段を用いてたくさんのカスタムトラックを追加します。Wiimms Mario Kart FunのwiimmsというのはCTGP Revolutionでも使用しているwifiコネクションサービスであるwiimmfiを作った人です。
用意するもの
- pc(windowsじゃ無いと苦労するかも)
- マリオカートwiiのisoデータ
- NTFSでフォーマットされた記憶領域(これじゃ無いと私の環境ではエラーを起こして動きませんでした。)
- 7zip(僕は初めから使っていたのですがこれが無いと動かないという噂があるため書いておきます。)
手順
- まずはMario Kart Funのサイトにアクセスします。
ここです→https://wiki.tockdom.com/wiki/Wiimms_Mario_Kart_Fun - ここの最初のリリース日が新しいものを選んでダウンロードします。
Wiimms Mario Kart Historyは今までの全てのコースの全てのバージョンを追加するというものなので、追加すると1000を超えるコースの量に圧倒されます。w - 私はchromeでやりましたがchromeだとダウンロードするときにリンクをクリックしただけだとダウンロードできませんでした。なのでリンクを右クリックしてリンク先を保存を選択するとダウンロードが開始されますが、chromeからコンピュータに損害を与える可能性が〜と警告がありますが元々CTGP Revolutionなどの改造をしようとしていた人にはそんな覚悟はできている(?)と思うので無視してダウンロードします。
- ダウンロードしたものを解凍し、中身を見るとcreate-images.batというのがあると思うのでそこと同じ階層にマリオカートwiiのisoデータを入れます。
- windowsならcreate-images.batを起動します。(僕の環境ではうまくいきませんでしたがmacなどのその他ならcreate-images.shを起動させてください)
- 指示に従って入力してenterを押していきます。(英語ですが)
通常であれば1個目はenで、2個目はJ、3個目はjp、4個目はyes、5個目はisoだと思います。 - 処理が終わるまで待ちます。
- Press any key to continueと表示されたら完了です。
- するとnew-imageというフォルダの中にパッチを当て終わったマリオカートwiiのファイルが出来上がっています
- 完成です。dolphinエミュレータなどで読み込んで遊びましょう。
最後に
いい夢だったなぁ〜(素知らぬ顔)
水曜日, 2月 23, 2022
【FlatPress】DB不要のお手軽CMSを使ってみた【WordPressから逃げたかった】
皆さんはもしブログを立ち上げるとなったら何を使いますか?やっぱりwordpressですかね?
ひねくれてるかもしれないですがwordpressを入れたくないなぁと思って代わりにこのFlatPressを導入しました。このブログのことです。
そこでWordPress使ったことないですがここが便利だなぁと思った点とここが不便だなぁという点を書き出してみました。
よかった点
- とにかく手軽
導入がクソ簡単だった。FlatPress公式サイトからダウンロードして上げ、あとは道なりに進んでいけば出来上がります。
悪かった点
ほとんどは使用人口が少ないことに起因していると思います。
- プラグインが少ない
- テーマが少ない
- 日本語の記事がほとんどない
日本語のgoogle検索でヒットした件数5200件ほど・・ - なんなら英語ですらあんまりない
作られたのはドイツらしい。
テーマやプラグインが充実すればめちゃくちゃすごいのになぁ・・・
最後に
間違ってたら加筆修正します・・・
【python】1番手軽な画像収集方法【webスクレイピング】【画像収集】【データセット】
画像を処理するAIのデータセットなどで画像を収集しなければならない時が時々ありますよね。
みなさんは画像収集する時どのようにして集めていますか?webスクレイピングの有名な手段としては、
- selenium
- Beautiful Soup
- Requests
- Scrapy
などがあると思いますが、画像収集という点だけに絞れば、もっと手軽に試せる手段があります。それがicrawlerです。
icrawlerとは
ウェブクローラ用のライブラリで画像や動画をスクレイピングすることができます。
使い方
まず、pipでicrawlerをインストールします。(既にインストールしている人はスキップしてください。)ターミナルやコマンドプロンプトなどで
pip install icrawler
です。
次に、インポートします。現在、icrawlerが機能する検索エンジンはbaidu・bingのみです。googleも対応していたようですが、現在は対策されたためエラーが出て使えません。日本人がbaiduを使うときはよっぽどないと思いますのでbingを使うという体で進めていきます。bingを使うときのicrawlerをインポートするコードは
from icrawler.builtin import BingImageCrawler
です。
crawler = BingImageCrawler(downloader_threads=4,storage={"root_dir": "apple"})
このコードはどの検索エンジンで何スレッドでクロールし、その結果をどこに保存するか決めています。このコードではbingで4スレッドでクロールをし、結果をappleというフォルダに入れるという設定になっています。
crawler.crawl(keyword="りんご", max_num=10)
このコードはどんなワードで検索し、その画像を何個保存するのかを決めています。このコードはりんごというキーワードで検索し、出てきた画像を10個保存するということになっています。
まとめ
これらをまとめると
from icrawler.builtin import BingImageCrawler crawler = BingImageCrawler(downloader_threads=4,storage={"root_dir": "apple"}) crawler.crawl(keyword="りんご", max_num=10)
となります。Requestsなどで書くよりも遥かに短いです。手軽なので、試してみてエラーが出て動かないとなってから変えてみても遅くないというのがメリットだと思います。しかし、ここまで書いておきながら時間があるのであれば他のライブラリは圧倒的に汎用性が高いので画像のクロールを通してseleniumやRequestsなどの他のライブラリに慣れておくというのは悪くないのかも・・・とも思ってしまいました。
月曜日, 3月 22, 2021
seleniumで簡単にreferer偽装[python](403エラーやアクセス禁止された時に)
seleniumでアクセスしようとした時にどこからアクセスしたかで判別されて弾かれることがあります。
そんな時にrefererを偽装する方法を記しておきます。
意外と簡単な話でseleniumはjavascriptのコードを実行することができるため、javascriptを駆使します。
その前にまずはrefererとして設定したいサイトにアクセスします。
chrome_options = Options() driver = webdriver.Chrome("/*chromeドライバーのパス*/", chrome_options=chrome_options) driver.get("/*refererとして設定したいサイトのurl*/")
そしてseleniumにはjavascriptを実行するapiが存在します。
driver.execute_script(/*ここにjavascriptのコードを書く*/)
がjavascriptを実行するapiです。
ここのjavascriptに要素を書き換える命令を使って
なにかしらの要素をaタグに書き換えます。
そうです。自分が指定したurlにアクセスし、htmlの要素を書き換えてリンクを作成し、クリックしてそのサイトにアクセスすればrefererは自分で決めることができます。
そして下記のコードをサイトに合わせて書き換えて実行します。
var refererselector=document.getElementById("/*なにかしらのhtmlの要素のid*/"); refererselector.innerHTML="<a id='refererurllink' href=''+str(imgurl)+''>吹っ飛べ!</a>"
そしてseleniumのapiでクリックします。
element=driver.find_element_by_id("refererselector") element.click()
これらを一つのpythonのプログラムにまとめると下記のようになります。
driver.execute_script('var refererselector=document.getElementById("/*なにかしらのhtmlの要素のid*/");refererselector.innerHTML="<a id='refererurllink' href=''+str(imgurl)+''>吹っ飛べ!</a>"') element=driver.find_element_by_id("refererurllink") element.click()
いかがだったでしょうか?
これで403エラーも怖くないですね☆