とあるC#のスクレイピングソフトの記録 1-2 | WEB系技術電脳日記

とあるC#のスクレイピングソフトの記録 1-2

$WEB系技術電脳日記


ちと必要にかられて自分で使うソフト作る事に。
また同じようなケースが発生するかもしれないので、
地道に記録しておく事にした(´・ω・)ス

前回までの記録
某サイトから情報を抜き出し、自分のMySQLへ入れ込む。
某サイトのパラメーターを確認。
変数を持たせるのか?どうするのかと思案して、Webbrowserを配置・・


//例のごとく作業しながら更新中( ; ̄ω ̄)ゞ

それぞのパラメーター値は非常に多いし、ループさせる必要があるので、
ここは変数を使う事にする。
int [] ad = new int[] { 値,値 } ;
となるが、ここも値が多すぎるので、ソースに書いていいか不明だが、
やはり外部ファイルを使う事にする。
外部ファイルを読んで、その値に入れむ。

13:40 作業開始。まずは外部ファイルを用意。
14:12 それぞれの読み込ませ(´・ω・)ス
    一行づつ読み込ませたいので、
 string[] area = File.ReadAllLines("ファイル.txt",
  System.Text.Encoding.GetEncoding("Shift_JIS"));
    で、配列で処理。
    他のテキストも初っ端読んでおく。
14:17 用意完了。だが、個別の入れ込むデータにカラムが足りないので、用意しておく。
テーブル構造は

-- テーブルの構造 `individual`
DROP TABLE IF EXISTS `individual`;
CREATE TABLE IF NOT EXISTS `individual` (
`id` int(7) NOT NULL,
`name` varchar(45) default NULL,
`postalcode3` int(3) default NULL,
`postalcode4` int(4) default NULL,
`add` varchar(45) default NULL,
`TEL` varchar(15) default NULL,
`FAX` varchar(15) default NULL,
`website` varchar(45) default NULL,
`email` varchar(45) default NULL,
`erea` varchar(45) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

としたが、スクレイピングで引っ張ってくるとカテゴリ自体、
同時に`individual`と、カテゴリに入れるのがキツイので、
//分からなくなるので、
ここにカテゴリを持たせる。
カテゴリの構造は、

-- テーブルの構造 `categories`
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL,
`parents_id` varchar(45) default NULL,
`name` varchar(45) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

///として単純にした。

ここで、ちと考えてみるが、
カテゴリは2段になっていて、検索する場合、
1.individualのテーブルとcategoriesをジョイントさせて検索結果
2.individualのテーブルに親カテゴリ直で検索結果。
構造的には上のほうがテクニカルだが、どう考えて2のほうが早い。
そうなれば、individualに二段ともカテゴリを持たせて、
個別の表示という部分で、カテゴリテーブルを使うか。

で、修正後

-- テーブルの構造 `individual`
CREATE TABLE IF NOT EXISTS `individual` (
`id` int(7) NOT NULL,
`name` varchar(45) default NULL,
`postalcode3` int(3) default NULL,
`postalcode4` int(4) default NULL,
`add` varchar(45) default NULL,
`TEL` varchar(15) default NULL,
`FAX` varchar(15) default NULL,
`website` varchar(45) default NULL,
`email` varchar(45) default NULL,
`erea` varchar(45) default NULL,
`categories_id` int(11) NOT NULL,
`parents_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- テーブルの構造 `categories`
--

CREATE TABLE IF NOT EXISTS `categories` (
`categories_id` int(11) NOT NULL,
`parents_id` int(11) default NULL,
`name` varchar(45) default NULL,
PRIMARY KEY (`categories_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



とう形でとりあえず( ; ̄ω ̄)ゞ