sample of getinfomation from site

<?php

$dsn = '{エンドポイント}';
$user = '{ユーザー名}';
$password = '{パスワード}';

$pdo = new PDO($dsn, $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

# 取得するURL
$url = 'https://www.daijob.com/jobs/detail/708175';

# 取得する項目一覧
$info = [
    '/canonical.{1,100}?\/detail\/(\d{1,10}?)"/u',
    '/title>(.{1,1000}?) \|/u',
    '/recruit_level">\s+?<span>\s+(.{1,100})/u',
    '/span>企業名[\s\S]+?<h4>([\s\S]{1,1000}?)<\/h4>/u',
    '/>職種[\s\S]+?img src="(.{1,100}?)"/u',
    '/jobs_company_type.*?">(.{1,100}?)</u',
    '/>職種[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>業種[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>勤務地[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>仕事内容[\s\S]{1,30}?<td>([\s\S]{1,3000}?)<\/td>/u',
    '/>企業について[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>応募条件[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>英語能力[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>日本語能力[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>年収[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>給与に関する説明[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>休日[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>契約期間[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/>最寄り駅[\s\S]+?<td>([\s\S]{1,1000}?)<\/td>/u',
    '/掲載開始日.{1,100}>([\d-]{1,20}?)<\/span>/u',
    '/更新日.{1,100}>([\d-]{1,20}?)<\/span>/u'
];

# HTMLを取得
$html = file_get_contents($url);

#print $html;

# 情報を取り出してsql文を作成
$sql = 'insert into t_info2 values(';
foreach($info as $value){
    $item = '';
    if (preg_match($value, $html, $matches, 0)>0){
        $item = $matches[1];
        $item = strip_tags($item);
        $item = preg_replace('/^\s+|\s+$/', '', $item);
        $item = preg_replace('/&nbsp;/', '', $item);
        $item = preg_replace('/&#xa0;/', ' ', $item);
        $item = preg_replace('/\/images\//', 'https://www.daijob.com/images/', $item);
        $item = "'" . $item . "'";
    }
    $sql .= $item;
    $sql .= ',';
}
$sql = rtrim($sql, ',');
$sql .= ')';
print 'sql:' . $sql . '\n';

# mysqlにinsert
try{
    $pdo->exec($sql);
}catch(PDOException $e){
    print $e->getMessage();
}

?>

Leave a Reply