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: 変更後エンコード
記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@tanakashiの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする