<?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('/ /', '', $item); $item = preg_replace('/ /', ' ', $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(); } ?>