Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
「webサイトから欲しい情報だけを集めたい」そんなことはありませんか? 「スクレイピング」という技術を使うことによって、カンタンにwebサイトから欲しい情報を取得することが出来ます。 スクレイピングとは WebサイトからWebページのHTMLデータを収集して、特定のデータを抽出、整形し直すことである。 引用:IT用語辞典 今回は「phpQuery」を使ってスクレイピングを実装します。 名前の通りで、phpを使います。 phpQueryの導入方法 公式サイトからzipファイルをダウンロードします。 解凍したら中にある「phpQuery-onefile.php」をお好きなところに配置してください。 今回は、わかりやすくルートに配置しました。
追記 その後、optex だけを使ってより汎用的なインタフェースで実装しました。今から使うんだったら、こちらの方がいいと思います。 MS Office ドキュメントや PDF ファイルを grep したり diff したりする - Qiita 追記2 greple の -Mmsdoc モジュールは、1.04 (2020-09-23) から optex -Mtextconv のコードを利用するように変更されています。なので、今はどちらを使っても同じ結果になります。optex を使うと、指定したすべてのファイルを変換してからコマンドを実行するので、多くのファイルを指定すると時間がかかります。-Mmsdoc モジュールの場合は、都度変換しながら処理します。 MS のドキュメントを端末で操作する マイクロソフトという会社は別に嫌いではないが、ソフトウェアさえ作ってくれなければいいのになあと思う。そ
MVCとは UIを持つアプリケーションソフトウェアを実装するためのデザインパターンである。 MVCではプログラムをModel、View、Controllerの3つに分割して書くことで機能の独立化・可読性の向上を図ることができる。 MVCを調べるとこんな感じの説明がでてきたと思います。 でも最初はピンとこないかもしれません。「デザインパターン?」「機能をなんで独立させなくちゃいけないの?」「結局なんのためにMVCにするの?」 今回は10サイトくらい見ても結局わからなかった人のためになるべく難しい言葉を使わずに、図解してわかりやすくMVCについて説明していきます。 日常生活に即して例をみていきましょう 一旦プログラムから離れて、わかりやすいところからMVCについて解明していくことにします。 おじさんのレストラン 子供のころから自分の店を開くことを夢見ていたおじさんが、ついにレストランを開業しま
Webサイトによっては掲載する画像を保存できないようにしなければいけない時があります。 今回は画像がダウンロードできないようにするための対策とその回避方法を紹介します。 回避方法に関しては既存のサイトでも使えるかもしれないので、悪用厳禁です! また、ここに載っている方法は回避可能なので他の方法を検討しなければいけません。 個々の内容は昔からあるテクニックなので何番煎じな内容ですが、まとめ記事として残しておきます。 TL;DR フロントエンド: 透明の画像を被せる フロントエンド: 右クリックを禁止する フロントエンド: ドラッグを禁止する バックエンド: 画像のURLから直接アクセスできないようにする 環境 フロントエンドはChromeで確認しています。 バックエンドはnginx、Node.jsで確認しています。 OSはmacOS 10.13で確認しています。 透明の画像を被せる 保存され
はじめに 各種のDB中の集計作業を行うにあたって、以下のようなデータをどうしても扱わなければならない場合は、SQLのみで完結させないことを検討しなければ、サーバリソースを大量に消費した挙句、何時まで経っても作業が完了しないということが有ります。 SQL操作だけに頼らないことを検討したい集計例 explainすることで大体の傾向はわかりますが、おおよそ以下のような要素を含む集計が対象となります。 対象のレコード数が巨大である(数百万レコード以上) DBの余剰リソースにもともと余裕が無い indexのふられていない項目で集計/joinしなければならない join対象の項目がやけに多い not in 巨大なサブクエリ is null group by like etc... ではどうするか? 集計対象のレコードを一旦ファイルに吐き出した上で、ファイルベースの処理をしてしまいましょう。 実践例1
【2021/10/15 追記】 この記事は更新が停止されています。現在では筆者の思想が変化している面もありますので,過去の記事として参考程度にご覧ください。 この記事の情報は古いので,最新の情報が欲しい方は 「PHPで各種バリデーション」 をお読みください。 訂正: IPv6のメールアドレスは IPv6: プレフィクスが必要です。PHP7.1時点でこの形式に対応していることを確認しました。 誤: a@[2001:0db8:bd05:01d2:288a:1fc0:0001:10ee] 正: a@[IPv6:2001:0db8:bd05:01d2:288a:1fc0:0001:10ee] 関数ラインナップ 私の関数 function validate_email($email, $strict = true) { $dot_string = $strict ? '(?:[A-Za-z0-9!#
GitBucketとは GitBucketはたけぞうさんという方が開発されているGitHubのクローンアプリです。 Scalaで書かれており、驚くほど簡単に導入することができるのが特徴です。 OSSのGitHubクローンといえばGitLabがメジャーですが構築の手順が複雑かつ面倒なため、 使い始める前に構築段階で挫折した経験のある人も多いのではないでしょうか。 対するGitBucketはwarファイルを実行するだけという手軽さです、素敵!! より詳しいレビューはこのあたりを参照してください。 背景 とあるクラウド環境にGitBucketを導入する機会があり、 せっかくなので vagrant + ansible で導入を自動化するplaybookを書いてみました。 以下のクラウドプラットフォームで導入検証をしました。 AWS DigitalOcean したごしらえ Case: AWS vag
##概要 ###Mac | Mavericks Mavericksの設定については、ブログでも何度か紹介してきましたので、割と簡単にいきたいと思います。 主に、使用しているツールを書いていきます。 ###Windows | Windows7 私の場合、メインとしてCygwinとPowerShellを使っています。 Windows7は、仮想環境上で動作させています。 アプリのインストールは、Chocolateyで行います。 その他、TerminalにConsole Zを使います。 ###Linux | Manjaro Linux 現在、もう一つのMacBookAirには、Manjaro Linuxを直接インストールしています。 ウィンドウマネージャは、Awesomeを使っています。 最初は、Macとのデュアルブートしてみたのですが、どうもしっくり来なかったので、Macは消しました。非常に快適
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? システムには障害がつきものです。どんなにしっかりと作られたサービスであっても思わぬところで、バグやミスが発覚して、トラブルになるものです。大事なのはこういった障害を次への糧にしていくこと。失敗というのは大事な資産なので、管理できるようにしましょうという話。 あわせて読みたい あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ メンタリングの方法について基礎をまとめました。内心でなく行動を変えることが障害報告とも共通します。 新入社員が来てメンターになれって言われたけど、どうすればいいのかという対話テクニック 半年で40k
概要 実行時間の長いコマンドが終わったら、Mac の Notification Center (Growl にするのも可能) で通知がくる。Terminal.app と iTerm 2 に対応している。 通知の様子。30秒を超えるコマンドが通知されている。 30秒を超えないコマンドでも、失敗したら通知される。 どちらもターミナルがバックグラウンドのときのみ通知される。長いコマンドを投げてから twitter とか見てたらいつのまにか時間が経ってしまうような人に便利。 1. 準備 Notification Center に通知する場合 alloy/terminal-notifier をインストールする。コマンドから Notification Center に通知をするためのアプリ。 Releases から .app をインストールしてもよいし、Download にあるように RubyGems
$articles = Article::where('is_visible','=',1)->get(); 結構条件入れ忘れて出しちゃったりするよねー。 たとえば 記事1レコードほしいとき 以下で取得したいけどー $article = Article::find(1); 公開ステータスみないといけないので $article = Article::where('is_visible','=',1) ->where('id','=',$id) ->first(); とかしないといけない 面倒ですよねー。ついでに公開日とかチェックしないといけない時もある。 ってことで newQueryをフックすればできます。 各テーブルごとに条件やcolumn名が違う場合があるので 条件は whereRaw で指定できるようにしてます。 abstract class DbBase extends Eloque
つまりhtml, head, bodyなどの使い慣れたお決まりのタグは今更書くまでもないということ。 参考: どのようなタグが省略可能か http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#syntax-tag-omission P.S. STORYS.JP、 coincheck などのサービスを運営、開発しています。興味のある方はぜひ 和田まで連絡を! Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can
はじめに ここでは、MacBookAirで私が使っている便利ツールを紹介していきます。長文過ぎると、途中で表示できなくなってしまうことを学習したため、不要な解説は省略します。また、個人的な価値観から形成された表現を含むかもしれませんが、その点の説明も省略します。ご了承ください。 便利なアプリを知っていたら、是非コメントをお願いします。 MacBookAirにインストールしたアプリ BetterTouchTool //トラックパッド拡張、ショートカットキー拡張 Google Chrome //インターネットブラウザ Growl //通知を拡張するアプリ Kopypasta //クリップボードをバックアップ WindowFlow //ウィンドウ切り替え XtraFinder //Finderを拡張するアプリ Xcode //開発環境を提供するアプリ TinkerTool //Macの隠し機能を
主にシステム環境設定をいじったあと、あとはFinderの設定をしてターミナルなどからもちょちょっと変更を加えます。 基本的に「変更した部分」を記載しているため、記載されていない部分については初期設定のままとなっています。 基本的に上から実行します。 ウィルス対策ソフトは早い段階で入れておきたいので。その後の順番はどうでもいいでしょう。 1.システム環境設定(個人の趣味が色濃く反映しています) ■トラックパッド [ポイントとクリック] 副ボタンのクリックのプルダウンリスト-「右下隅をクリック」に変更 3本指のドラッグ-ON 軌跡の速さ-2~3目盛りほど速いに [スクロールとズーム] スクロールの方向-OFF [その他のジェスチャ] すべてチェック ■キーボード [キーボード] キーのリピート-MAX「速い」に リピート入力認識までの時間-MAX「短い」に F1、F2などのすべてのキーを標準の
僕はMacBook Airが嫌いですが、MacBook Proは好きです。あのペラペラしたキーボードとトラックパッドがだめです。 しかしMacBook White Unibodyが一番好きです (でした)。 Appleファンボーイ諸氏は使っているApple製品が壊れると「またApple製品を買える!」と喜ぶそうです。 僕はお金持ちではないので頻繁にMacを買えたりはしませんが、気分転換によくOSをクリーンインストールします。 OSをクリーンインストールするたびに入れるものが減っていってとても気持ちがよいです。 しかしOSをインストールしたあとのセットアップはできるだけ手間をかけたくありません。 高揚していた気持ちも既に冷めつつあるかとおもいます。 設定ファイルをGitなどで管理している人も少なくないとおもいます。 Rubyのバージョン管理ツール (RVMやrbenv) も「これ」というお決
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く