WEB系技術電脳日記 -483ページ目

まずはコーヒー(´・ω・)ス

photo:01



まずはコーヒーでも。
そんな朝(´・ω・)ス



iPhoneからの投稿

学ぶほどに未熟さを思い知る(´・ω・)ス

photo:01



昨夜は、、いやさっきまで作業で、
数ヶ月前の正規表現のコードは無駄だったと把握。
結論から書けばHTMLパーサー、、、
色々オーブンソースのが有ったのに、
使わなかったのはアレ。
その上、専用の抜きだしのブラウザまで有ったとは、、、。

まぁ、気付いただけでも。
そう思う朝(´・ω・)ス



iPhoneからの投稿

出撃(´・ω・)ス

photo:01



始発で出撃(´・ω・)ス
ビットスタート



iPhoneからの投稿

作業記録( ; ̄ω ̄)ゞ

ちと作業記録( ; ̄ω ̄)ゞ


WebClient web = new WebClient();
string html = web.DownloadString(url);
//HtmlDocumentクラスにHTMLをセット
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

//XPathでを使ってbox-shop-07と08のh2とテーブルを抽出
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(@"//div[@class=""box-shop-07""]//h2|//div[@class=""box-shop-08""]//h2|//table");
//HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(@"//div[@class=""box-shop-07""]|//div[@class=""box-shop-08""]");
//コレクションから値を取り出し

foreach (HtmlNode node in nodes)
{

textBox1.Text += node.InnerText + "\r\n";


}


なぜ改行が入るんだろう・・。
試しに、

string s = node.InnerText;
if (s.StartsWith("住所"))
{
textBox1.Text += node.InnerText;

if (s.StartsWith("住所"))の前にメッセージボックス入れても、
分岐できない。

これは明日・・・調べるか。
そんなメモ

とりあえずお風呂(´・ω・)ス

photo:01



明日始発で出撃になったので、
とりあえず徹夜確定。
先ずはお風呂(´・ω・)ス
ヌコが入って来て一緒にマッタリと。
そんな夜の記録(´・ω・)ス



iPhoneからの投稿

引き続き作業(´・ω・)ス

ちと作業中に中断し、再度作業に。
ブログにチマチマ作業記録つけてるから、
まだ色々な意味で復旧が早くできるが、
もしこれで作業記録をつけてなかったら、
もう何やってるかわからなくなるだろうな・・・


そんな事を考えた夜の記録。

ぬぅぅ・・・障害(;´・ω・)

某所で障害。
そんな訳で明日も神田方面に出撃。

これを書くと変人と思われるが、人間はアテにできない。
それに比べてPCやらサーバーは、チャンと行動する。
PCが動かないとか障害の原因はシステムではなくて、
それを動かす、いや、操作する人間のミス。

そんな事をいつも思うが・・・
大抵の場合、
(´・ω・)「人間よりPCの方が信頼できるね?_」
(;´・ω・) 「 ・・・・・」

そうなる。

どんまい(´・ω・)ス

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

$WEB系技術電脳日記

//例のごとく更新しながら記述。

引き続き(´・ω・)ス
早速、ループをかましてソースを取得し、
その結果をCSVに吐き出していく。

既に
//外部ファイル エリア.txtの読み込み
string[] area = File.ReadAllLines("エリア.txt",
System.Text.Encoding.GetEncoding("Shift_JIS"));
//外部ファイル カテゴリ.txtの読み込み
string[] cat = File.ReadAllLines("カテゴリ.txt",
System.Text.Encoding.GetEncoding("Shift_JIS"));
という感じで、配列に入れてあるので、
ここを、それぞれ入れ込む。
まずは読み込んだら次のパラメーターへ移動できるようにテスト。

18:13 パラメーターでアクセスさせるためループ用意
18:28 どうもアレ?と桁数前ゼロで間違った。さっそく桁数指定。
ALTER TABLE `area` CHANGE `id` `id` INT( 5 ) UNSIGNED ZEROFILL NOT NULL
19:05 今回も、webBrowser1_DocumentCompletedが発生しない。
   ループさせるか、オキャ氏の方法でReadyStateか・・・ちと確認。
19:52 結局、WebClientで読み込んでHTMLパーサーを使う事にした。
   この手法が今後も使うので、別記事でしっかり記録しておくか・・。

NYで金融界などに対するデモ、橋ふさぎ700人以上逮捕(´・ω・)ス


米ニューヨークのマンハッタンで1日、米金融機関や政府に対する大規模なデモが行われ、ブルックリン橋上で座り込むなどした700人以上が逮捕された。
このデモは「Occupy Wall Street(ウォール街を占拠せよ)」と名付けられた抗議活動で、リーマンショック後の金融機関に対する公的資金注入のほか、住宅差し押さえや高止まりしている失業率などに抗議するため、世界最大の金融街であるウォール街周辺で先月17日ごろから始まった。

 デモ隊はこの日、マンハッタン南部の公園に集結後、ニューヨークの南東部へ延びるブルックリン橋を行進。ブルックリン方面の歩道と車道をふさぎ、中には自分の腕を道路の柵に結び付ける参加者もいた。このため、警察当局は午後遅くになって、参加者700人以上を逮捕したという。
http://jp.reuters.com/article/worldNews/idJPJAPAN-23443220111002
http://headlines.yahoo.co.jp/hl?a=20111002-00000432-reu-int.view-000


この問題、奥が深い(´・ω・)ス
そもそも銀行金利を規制していたのに、某州が自由化し、
どんどんクレジットマンセになった責任は誰が取るのろうか。
またクレジットカードが身分証明みたいになっている現状、
この動きも、そして銀行協会(だったか?)も、
だれも責任を負わないだろうし。

怖い(´・ω・)ス
そんな私は一枚もクレジットカード持ってないという、
世間ズレ(´・ω・)ス

とある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;



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