SeleniumでAccess Deniedとなったときの対処方法

以前から、特定のWEBサイトにログインして、明細をCSVダウンロードするのを自動化していたのだが、最近”Access Denied” となって失敗するようになった。

おそらく先方のFirewallなりWAFなりのポリシーが厳しくなったのだと思う。httpのレスポンスヘッダーが、BigIPとなっていた。

selenium等のスクレイピング対策をされたのだと思う。

自分の環境は以下

回避策としては、chromeのオプションに以下を追加する。

続きを読む SeleniumでAccess Deniedとなったときの対処方法

pythonで標準出力のバッファを制御する

logresolveコマンドのpython版を作った時に知ったので、メモを残す。

 

内容は表題のとおり。

 

以下2パターンがある模様。

 

  1. 起動時のオプション(-u, unbuffered)を指定する。

  2. sysモジュールからハンドラにアクセスし、都度flushする。

すぐ忘れそう。。。

apacheのログを後からホスト名変換(python編)

前に、同じ記事を書いたが、なんかubuntuをアップグレードした影響なのか、ちょっと挙動が変わった。

前は、標準入力に渡してあげると、順次変換が実行されていたのだが、今は、まとめて結果が表示される。

多少遅くても、実行時眺めていたかったので、それならpythonで作ればいいやんと思ってとてつもなくと汚く書いた。汚い!!!

ファイル名を渡すか、標準入力で渡すかのみです。

オリジナルも同じだが、逆引き出来ない時の、タイムアウト時間がちょっと長くて
こっちでは短くしたかったのだが、結局面倒で(実力が無くて)やめた。

YAMAHAルータの古いファームウェアをダウンロード

最近のYAMAHAルータは、フォームフェアのアップデートも、ルータ内でコマンド実行すれば、http経由で最新のファームウェアを適用してくれたりと非常に便利なのだが、ごく稀に検証時などで古いファームウェアが欲しくなる時がある。

基本的にYAMAHAのスタンスは、最新バージョンのみ公開なのだが、調べて見たら古いバージョンもダウンロード出来そう。

都度思い出すのも、面倒くさいので、専用のページを作ってみた。

YAMAHAの古いファーム配布サイト

※週一回更新

スクリプトで更新してるので、YAMAHAのページの仕様が変わるとコケると思います。

とりあえず、自分が使いそうなルータをピックアップしてます。

ネットボランチ系(今もそう読んだっけ?)は入ってません。

ダウンロードしたファームウェアを、ルータにhttp経由で渡すにはこちらがおすすめ。

python環境が必須ですが。。。:-P

pythonでお手軽httpサーバ

ふとファイルのやり取りを簡単にWEBで渡せたらいいのにな。と思うことがある。最近のネットワーク機器だと、httpでのダウンロードに対応してたりするので、PC側にあるファームウェアをhttpで簡単に公開出来たら便利。

そんなときには、pythonさんのお力を借りる。

公開したいディレクトリで、

ってやるだけ。デフォルトでは、8000番ポートで公開される。

http://localhost:8000

ってやれば、カレントディレクトリのファイル一覧が表示される。

ポートを変更したい場合は、引数にポート番号を渡してあげるだけ。

あー。とてつもなく便利

なお当然ですが、閉じた環境でのみご利用ください。

django1.5にアップデート時のurl

自分の開発環境のubuntuを13.04にアップデートしたら、
pythonのvirtualenv環境が変になった。

virtualenv環境を新しくして、pipでdjangoをインストールしたところ
1.4から1.5に上がってしまい若干の修正が必要だった。

こんなエラーが表示される。

調べたところ、template内の、{% url foo.bar %}が問題らしい。

ここを

 

 

 

とクオートで囲んであげれば、現象回避できる。

自分の場合は、さほど数が多く無いので手動で行ったが、
多い場合は、スクリプトで対処が必要かと。

http://stackoverflow.com/questions/13590699/migrate-url-tags-to-django-1-5

テンプレートの、拡張子がhtmlならこんな感じでしょうか。(未検証)

(一応sed時に*.BKでバックアップも残して)