BETA

PHPで簡単webスクレイピング

投稿日:2019-01-31
最終更新:2019-01-31

PHPでwebスクレイピングする機会があったので、その辺りの知識のまとめです。

単語と意味の覚え方

スクレイピング

ウェブサイトから情報を抽出するコンピュータソフトウェア技術。これにより、必要な情報だけ選択的に収集することができる。

  • Scrape: 削る、こする、引っ掻く
    入手したデータを解析し、不要な部分を削ったり、必要な部分だけを取り出したりなど、目的に適う形式に整形すること。

スパイダリング

ロボット型検索エンジン(代表:Google)が、webサイトをインデックス化するためにスパイダー(情報収集を行うプログラム)を利用してクローリングする行為のこと。

  • Spider: クモの巣
    糸をを張り巡らせ、クモの巣を作っていくこと。

クローリング

スパイダーが走り、webサイトを自動巡回する作業のこと。

  • Crawl: 這い回る、徐行する、両手を利用する泳法のひとつ
    リンクを辿っていき、ページの階層を潜っていき、各々のページをスクレイピングしていく。

コード

phpQueryを利用します。

require_once("./phpQuery-onefile.php");  

// 必要なwebページを取得 *************************************  
$url = "https://**********";  
$contents = file_get_contents($url);  
$html = phpQuery::newDocument($contents);  

// htmlタグを利用しさらに細かな情報を取得 **************  

// - htmlタグを抜かしたテキスト情報のみ  
$body = $html->find("body")->text();  
$h1 = $html->find("h1")->text();  

// - タグの中身を取得  
$table = $html->find("table")->html();  

// - imgタグ取得  
$img = $html->find("img")->text("src");

文字化けする場合 → 文字コードを設定

$html = phpQuery::newDocument(convert_encode(file_get_contents($thread_url)));  

function convert_encode($context) {  
    return mb_convert_encoding($context, 'utf8', 'Shift_JIS');  
}
  • mb_convert_encoding ($str, $to_encoding, $from_encoding)
    • $str: 変換したいテキスト
    • $to_encoding: 変更後のエンコード
    • $from_$from_encoding: 変更後エンコード
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

web中心のメモ置き場。プログラミングからデザインまで。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!