現在、プログラミングの勉強をしている初心者です。
スクレイピングを行うサイトを勉強目的で作成しているのですが
取得した各ブログ記事のタイトル文章に「特定のNGワード」が入っていた場合に
「continue」を行い、次のループ取得を行うといった事をしているのですが、
取得するブログの数だけ複数のページがある(30個程)ので
1か所だけを変更するだけで複数のページのNGリストを一括で変更出来るようにしたいです。
【現在】
PHP
1test1.php 2 3require_once(__DIR__ . '/../bbsmysql.php'); 4require_once(__DIR__ . '/../function.php'); 5 6try { 7 $db = new \PDO(DSN, DB_USERNAME, DB_PASSWORD); 8 $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 9 echo "データベースへの接続が出来ました"; 10}catch (\PDOException $e) { 11 12 echo $e->getMessage(); 13 exit; 14} 15 16foreach ($doc[".CONTENTS"] as $entry){ 17 18//タイトル取得 19$title = pq($entry)->find('.blog_title')->text(); 20 21if($title === "" || 22strpos($title,"自殺") !== FALSE || 23strpos($title,"覚醒剤") !== FALSE || 24strpos($title,"殺害予告") !== FALSE 25) { 26 continue; 27} 28}
PHP
1test2.php 2 3require_once(__DIR__ . '/../bbsmysql.php'); 4require_once(__DIR__ . '/../function.php'); 5 6try { 7 $db = new \PDO(DSN, DB_USERNAME, DB_PASSWORD); 8 $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 9 echo "データベースへの接続が出来ました"; 10}catch (\PDOException $e) { 11 12 echo $e->getMessage(); 13 exit; 14} 15 16foreach ($doc[".CONTENTS"] as $entry){ 17 18//タイトル取得 19$title = pq($entry)->find('.blog_title')->text(); 20 21if($title === "" || 22strpos($title,"自殺") !== FALSE || 23strpos($title,"覚醒剤") !== FALSE || 24strpos($title,"殺害予告") !== FALSE 25) { 26 continue; 27} 28}
PHP
1function.php 2 3function h($s) { 4 return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); 5}
スクレイピングで取得した登録しているブログの記事タイトルの文章が0文字だったり
「自殺」「覚醒剤」「殺害予告」が含まれている場合にcontinueで次のループに移動しています。
現在はtest1.php,test2.php,test3.php……といった風に複数のスクレイピング取得ページに
それぞれコードを書いているのですが
NGリストに新しく1個追加したり、1個削除する場合に複数ページにて変更を行わないといけなくて大変になっています。
これを複数のページにて読み込んでいる「function.php」にて一括で設定する事が出来れば
運営がとても助かるのですが、上手く行う事が出来ませんでした。
プログラムの勉強をしたばかりの初心者で、何か勘違いしている点や
何かお気付きになった点がある方や
解決する方法をご存知の方がおりましたら
教えて頂けますと、とても嬉しいです。
どうかよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー