ログインが必要なサイトでのスクレイピング
ログインが、うまくいかなくて嵌っている。
とりあえず自分の為に、メモ。
特徴としては下記。
・2回ログインがある
・cookieにセッションIDを持つ
・hiddenにログインの都度乱数が生成される
基本的な考え方について
基本はブラウザのリクエストヘッダと
PHPからのリクエストヘッダが合えばうまくいくという理屈で考えている。
ブラウザからのリクエストヘッダの確認の仕方
chromeでの確認方法は下記サイトを参照させてもらった。
http://marubon.info/method-confirm-http-header-2345/
1.chromeで下記にアクセス
chrome://net-internals/#events
2.「type:URL_REQUEST」で絞込み
方法
curlやfile_get_contentsで地道にやってく方法もある。
パーフェクトPHP Part3実践アプリケーション(2)
(1)の続きで、写経。
プログラムの意味を理解しながら進めていった。
今日は下記を書いた。
Router.php
Response.php
DbManager.php
まだまだ先は長い。。。
正規表現での名前付きキャプチャ
知らなかった。
正規表現(preg_match)でこんなことも設定できるのかと参考になった。
「(:P<名前>パターン)」とすると、preg_matchの返り値の配列に
名前をつける事ができるようになる。
ソース
$pattern = '/cc(?P<dev>dd)ee/'; $str = 'ccdedccddeevertc'; preg_match($pattern, $str, $result); var_dump($result);
結果
array(3) { [0]=> string(6) "ccddee" ["dev"]=> string(2) "dd" [1]=> string(2) "dd" }
パーフェクトPHP Part3実践アプリケーション(1)
勉強計画(殴り書き
これまでの問題点
自分は、「作りたいもの」があるから勉強するのではなく
外(ブログなど)からの煽りによって「やらなくちゃ」と勉強するタイプだ。
ネットで「○○が許されるのは小学生までだよね」的
情報に踊らされたり、なんとなく気になる技術を触ってみたいという欲求から
勉強してみるのだけど、結局入門レベルで終わってしまう。
ドットインストールなどで学んだ後に本を買って読んだはいいが
作りたいものはないので入門レベルの知識は、その後活用されず
風化の道を辿る事が多い。
読みかけの本が積まれている本棚を見て
自己嫌悪に陥ることが、よくある。
計画性のなさと、刹那的な欲求に突き動かされる事が
入門レベルで終わってしまう原因だと思うので、
勉強の計画を立てたい。
計画
勉強する際に気をつける事
・セキュリティ(脆弱性を出さないプログラムを書くには
・テスト(バグを出さないプログラムを書くには
・性能(無駄な処理をしてないか、どうすれば早く処理できるか
・可読性(読みやすいコードを書くには
・汎用的な知識は、深堀りする
・とりあえず、勉強したらブログにアウトプット
(入力→出力はセットにすること)
opensslの脆弱性対応【さくらVPS】
opensslの脆弱性対応を、さくらVPSでやったのでまとめ。
反応遅いw
対象
使用している OpenSSL のバージョンが 1.0.1 〜 1.0.1f の場合
やったこと
2.opensslのバージョンアップ
・sudo yum update openssl
が、下記のようなエラーが出た。
Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Error: Cannot find a valid baseurl for repo: base
4.アップデートされた事を確認
バージョン、リリースが下記になってればOK
Version : 1.0.1e
Release : 16.el6_5.7
・yum info openssl
Loaded plugins: fastestmirror, security Repository base is listed more than once in the configuration Repository updates is listed more than once in the configuration Repository extras is listed more than once in the configuration Repository centosplus is listed more than once in the configuration Repository contrib is listed more than once in the configuration Loading mirror speeds from cached hostfile * epel: ftp.riken.jp Installed Packages Name : openssl Arch : x86_64 Version : 1.0.1e Release : 16.el6_5.7 Size : 4.0 M Repo : installed From repo : updates Summary : A general purpose cryptography library with TLS implementation URL : http://www.openssl.org/ License : OpenSSL Description : The OpenSSL toolkit provides support for secure communications : between machines. OpenSSL includes a certificate management tool : and shared libraries which provide various cryptographic : algorithms and protocols. Available Packages Name : openssl Arch : i686 Version : 1.0.1e Release : 16.el6_5.7 Size : 1.5 M Repo : updates Summary : A general purpose cryptography library with TLS implementation URL : http://www.openssl.org/ License : OpenSSL Description : The OpenSSL toolkit provides support for secure communications : between machines. OpenSSL includes a certificate management tool : and shared libraries which provide various cryptographic : algorithms and protocols.
仕事をする上で気を付けたい3点
1.成果が出ている事を長期間続ける
感情のコントロールが重要。
自分を客観的に見つめる事は難しい為、成果が出ててもなかなか実感できない。
また、逆に自分の都合のよいように物事を捉えてしまう傾向もある。
その為、長期間ひとつの事を続ける事が出来ず
大きな成果に繋がりにくい。
やっちゃいけない事
・人と比べたり、自分の不甲斐なさからせっかく成果が出ている事を辞めてしまう
・サンクコストの呪縛から、成果が出ていない事を辞められない
成果が出ているか・出ていないかを客観的に見て判断する必要があり
論理的でない感情での判断は厳禁。
KPTを行うのがよさそう
https://speakerdeck.com/ryopeko/devsumi2014-dena-bootcamp2014
http://ryopeko.hatenablog.com/entry/2014/02/13/225714
やってみると、問題やよかった事がどんどん溜まっていって
モチベは上がったし、常に問題意識をもって仕事に取り組めたかなと
思う。
2.PDCAサイクルを回す
問題を日々の業務で感じるが
PDCAサイクルを回せているかというと、出来ていない事が多い。
http://harappa-office.com/about/about-pdca/
http://matome.naver.jp/odai/2130371108088003901
作業ログをとる事を起点にする
どんな感じでPDCA回すかを考えてみる。
■PLAN
1.作業手順を細かく書き出す
2.作業予測時間を立てる
■DO
3.実際作業時間を測定
■CHECK
4.つまづいたところ、時間がかかったところを
問題点として書く→改善策を立てる
5.予想時間と、実際作業時間でのズレがどの程度かチェック
6.ズレの原因を考える
■ACTION
7.また類似作業をやるようであればマニュアル化
8.改善点をログとして次やる時に残しておく
3.作業の規則性を把握→マニュアル化→実践→習慣化
作業の効率化を進める事で、問題点の改善に時間を割けるようになる。
頭のメモリに残しておくよりも、外に出力する事で
より内容が精査される。
下記等式が成り立つのでは?
理解する=人に説明できる=マニュアル化できる
マニュアル化には、時間がかかるが自分だけでなく
他の人にも情報共有する事が出来る。