C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: web上のボタンのクリックの処理が分からない。


(過去ログ 115 を表示中)

[トピック内 15 記事 (1 - 15 表示)]  << 0 >>

■68089 / inTopicNo.1)  web上のボタンのクリックの処理が分からない。
  
□投稿者/ ジョニー (9回)-(2013/09/22(Sun) 01:53:50)

分類:[C#] 

2013/09/22(Sun) 01:56:54 編集(投稿者)

今回、Visual C# 2010を使用し、
webブラウザ(コントロール名:WebBrowser1)
を一つ貼り付けて、
クライアント側のプログラムを作成しています。

そこで下記のHTMLが書かれたページにアクセスして、
ボタンをクリックする方法が分かりません。

id値、name値、value値等があればクリックの仕方は分かるのですが、
これらの値がない、
<button>の場合どう処理すればよいのでしょうか?

<button tabindex="0" class="blogg-button GEE3RVNDMU">新しいブログ</button>

下記サイト(blogger)のボタンです。
http://www.blogger.com


記述してみたソース

string source = webBrowser1.Document.Body.InnerHtml;

//置き換えをしてみたが、駄目だった。
source = source.Replace("<button class=\"blogg-button GEE3RVNDMU\" tabIndex=\"0\">新しいブログ</button>", "<input value=\"新しいブログ\" class=\"submit custom-button\" type=\"submit\" />");

IEButtonClick("input", "type", "submit");

private void IEButtonClick(string htmlタグ, string タグ内要素, string 要素の値)//
{
HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName(htmlタグ);//
foreach (HtmlElement element in elements)
{
if (element.GetAttribute(タグ内要素) == 要素の値)//()内は別にidでも使用可能です。nameで試してない
{
element.InvokeMember("click");
break;
}
}
}

どなたか分かる方がいれば(ソース)のサンプルを教えてください。

よろしくお願いします。
引用返信 編集キー/
■68090 / inTopicNo.2)  Re[1]: web上のボタンのクリックの処理が分からない。
□投稿者/ WebSurfer (57回)-(2013/09/22(Sun) 11:07:07)
No68089 (ジョニー さん) に返信
> 2013/09/22(Sun) 01:56:54 編集(投稿者)
> private void IEButtonClick(string htmlタグ, string タグ内要素, string 要素の値)//
> {
> HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName(htmlタグ);//
> foreach (HtmlElement element in elements)
> {
> if (element.GetAttribute(タグ内要素) == 要素の値)//()内は別にidでも使用可能です。nameで試してない
> {
> element.InvokeMember("click");
> break;
> }
> }
> }

検証してませんが・・・

> if (element.GetAttribute(タグ内要素) == 要素の値)//()内は別にidでも使用可能です。nameで試してない

の「タグ内要素」を "class" にして、「要素の値」を "blogg-button GEE3RVNDMU" とした
ら、当該 element を取得できませんか? 同じスタイルが複数の button 要素に適用されて
いて一つに特定できない場合は、InnerHtml が "新しいブログ" かどうかも調べれば特定で
きるのでは?

引用返信 編集キー/
■68091 / inTopicNo.3)  Re[2]: web上のボタンのクリックの処理が分からない。
□投稿者/ にゃろめ (1回)-(2013/09/22(Sun) 18:26:17)
> 検証してませんが・・・
>
>>if (element.GetAttribute(タグ内要素) == 要素の値)//()内は別にidでも使用可能です。nameで試してない
>
> の「タグ内要素」を "class" にして、「要素の値」を "blogg-button GEE3RVNDMU" とした
> ら、当該 element を取得できませんか?

GetAttributeでclass属性の値を取得する場合、"class"ではうまく属性の値が取れず、
属性名を"className"としなければならなかったということを記憶しています。

× element.GetAttribute("class")
○ element.GetAttribute("className")
引用返信 編集キー/
■68095 / inTopicNo.4)  Re[3]: web上のボタンのクリックの処理が分からない。
□投稿者/ ジョニー (10回)-(2013/09/23(Mon) 12:01:06)
No68091 (にゃろめ さん) に返信
>>検証してませんが・・・
>>
> >>if (element.GetAttribute(タグ内要素) == 要素の値)//()内は別にidでも使用可能です。nameで試してない
>>
>>の「タグ内要素」を "class" にして、「要素の値」を "blogg-button GEE3RVNDMU" とした
>>ら、当該 element を取得できませんか?
>
> GetAttributeでclass属性の値を取得する場合、"class"ではうまく属性の値が取れず、
> 属性名を"className"としなければならなかったということを記憶しています。
>
> × element.GetAttribute("class")
> ○ element.GetAttribute("className")


下記の様にソースを変更してみましたが、
結局、上手く押す事が出来ませんでした。

下記のソースで
element.GetAttribute("classname")をelement.GetAttribute("class")に戻したとしても
駄目でした。


source = source.Replace("<button class=\"blogg-button GEE3RVNDMU\" tabIndex=\"0\">新しいブログ</button>", "<input value=\"新しいブログ\" class=\"custom-button\" type=\"submit\" />");

HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("input");//
foreach (HtmlElement element in elements)
{
if (element.InnerText == "新しいブログ")
{
if (element.GetAttribute("classname") == "custom-button")//()内は別にidでも使用可能です。nameで試してない
{
element.InvokeMember("click");
break;
}
}

}
引用返信 編集キー/
■68096 / inTopicNo.5)  Re[4]: web上のボタンのクリックの処理が分からない。
□投稿者/ Azulean (216回)-(2013/09/23(Mon) 12:20:35)
この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります。
Blogger.com がどうかはわかりませんが、Blog 新規作成まで自動化する必要はあるのでしょうか?

No68095 (ジョニー さん) に返信
> source = source.Replace("<button class=\"blogg-button GEE3RVNDMU\" tabIndex=\"0\">新しいブログ</button>", "<input value=\"新しいブログ\" class=\"custom-button\" type=\"submit\" />");

source 変数はあくまで WebBrowser から取得した文字列に過ぎません。
source 変数の内容を書き換えても WebBrowser には何も影響しないのでご注意ください。

もし、探すのであれば button で探すべきかと。
引用返信 編集キー/
■68097 / inTopicNo.6)  Re[5]: web上のボタンのクリックの処理が分からない。
□投稿者/ ジョニー (11回)-(2013/09/23(Mon) 14:02:26)
2013/09/23(Mon) 14:27:42 編集(投稿者)

No68096 (Azulean さん) に返信
> この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります

具体的にどこのサービスですか!?

具体的にあげられないのであれば、
憶測で物事を言うのはやめて頂きたいです。

私は、自動化を禁止しているというのは聞いた事がありませんが、、、
自動化でアカウント取得を沢山作りすぎるのは
制限がかかることは聞いたことがありますが、、、
自動化自体を禁止しているのは聞いた事がありません。

> Blogger.com がどうかはわかりませんが、Blog 新規作成まで自動化する必要はあるのでしょうか?

他の人にとっては、必要ないのかもしれませんが、
私にとっては、必要としているから、
ここに記載しているのではないでしょうか?

必要がなければ、ここにあえて質問はしないと思います。

それを再度、相手に尋ねるのはおかしい事と言うか
大変失礼だと思います。

あなたも、他の人にとって必要が無いと思われても
自分にとって必要があるという筝はないのでしょうか?

それに対して、他の人から
「それって、本当に必要があるの?」
と言われたらどう思われますか?

気分を害しませんか?

どこかの掲示板で、あなたの事が書かれていましたが、

「親切心が、、、」とか言ってたような、、、

人違いであれば、申し訳ございません。m(_ _)m

何となく、回答が投げやりというか、、、
何となく他の人が言っていたのが分かるような気がします。

> ■No68095 (ジョニー さん) に返信
>> source = source.Replace("<button class=\"blogg-button GEE3RVNDMU\" tabIndex=\"0\">新しいブログ</button>", "<input value=\"新しいブログ\" class=\"custom-button\" type=\"submit\" />");
>
> source 変数はあくまで WebBrowser から取得した文字列に過ぎません。
> source 変数の内容を書き換えても WebBrowser には何も影響しないのでご注意ください。

以前、別のプログラムで、
これと同じように、nameもidもvalueも無い場合に
sourceのreplaceで
きちんとwebBrowser上で反映されたのですが、
これは何故でしょうか?

本当に影響は無いと言えるのでしょうか?


> もし、探すのであれば button で探すべきかと。

下記のHTML
<button tabindex="0" class="blogg-button GEE3RVNDMU">新しいブログ</button>
に対して、

replaceを取り外して、
source変数を使わずに、
次の様に修正してみましたが、
残念ながら、ボタンをクリックすることは不可能でした。

他に方法があれば、是非ソースを記載して
教えてください。

HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("button");//
foreach (HtmlElement element in elements)
{
if (element.InnerText == "新しいブログ")
{
element.InvokeMember("click");
break;
}
}


よろしくお願いします。m(_ _)m
引用返信 編集キー/
■68098 / inTopicNo.7)  Re[6]: web上のボタンのクリックの処理が分からない。
□投稿者/ WebSurfer (58回)-(2013/09/23(Mon) 14:30:03)
No68097 (ジョニー さん) に返信
> 2013/09/23(Mon) 14:20:20 編集(投稿者)
>
> ■No68096 (Azulean さん) に返信
>>この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります
>
> 具体的にどこのサービスですか?
>
> 具体的にあげられないのであれば、
> 憶測で物事を言うのはやめてください。

憶測ではありません。プログラムでなら自動的に 1 秒間に数百回もしくはそれ
以上 Web サーバーに要求がかけられることは認識してますか? 手動でやる
DOS 攻撃以上ですよ。

そういう認識なしで自動化プログラムを作っているとすると、非難されても
やむを得ませんよ。
引用返信 編集キー/
■68099 / inTopicNo.8)  Re[7]: web上のボタンのクリックの処理が分からない。
□投稿者/ Azulean (217回)-(2013/09/23(Mon) 14:38:56)
感情的になるのはかんたんですが、建設的ではないですし、あなたの批判するコメントを見て、スレッドにコメントが続かなくなる(非活性化する)恐れがあるので、感情的なコメントは書かない方がいいですよ。
(質問者にとって損するようなことは書かない方がいいですよ)

No68097 (ジョニー さん) に返信
> ■No68096 (Azulean さん) に返信
>>この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります。
>>Blogger.com がどうかはわかりませんが、Blog 新規作成まで自動化する必要はあるのでしょうか?
>
> 必要がなければ、ここに質問はしないはずです。
> それを再度、相手に尋ねるのはおかしい事と言うか
> 大変失礼だと思います。

私が失礼とか云々の前に、「禁止されていることがあります」という懸念の表明に対して、あなたの考えを提示していただけませんか?
あなたが OK と判断できる根拠をお持ちであれば、それを共有していただいた方が回答を集めやすいでしょう。

Google はたいていのサービスに対して API を公開しています。
それに頼らない方法は認められていない可能性があるので、どうなのでしょうか?という疑問の投げかけた次第です。


なお、アカウントの取得の例ではありませんが、岡崎市立中央図書館の事件は有名な事例です。
自動的に Web サービスを利用するプログラムをお書きになるのであれば、どういった事例だったのかを確認していただいた方がよいでしょう。
この件では時間あたりの試行回数を制限した自動アクセスプログラムを作って運用されていた方が逮捕されるという自体に発展しています。


> 以前、別のプログラムで、これと同じように、nameもidもvalueも無い場合に
> sourceのreplaceできちんとwebBrowser上で反映されたのですが、
> 何故でしょうか?
> 本当に影響は無いと言えるのでしょうか?

そのように問う前に、前のコードと今回のコードの違いを見極めませんか?
あるいは、もう一度 InnerHtml を取り出してみて変化しているかを確認することでも、私への疑問の提示とならず、確定情報を得られるはずです。


以前にできていたことが、今回はできないというのは、ベテランでもやりがちなミスです。
その場合は「何が違うのか?」という観点で見直すことで、何らかのミスを見つけることができます。

差分を予想するに、変数を書き換えた後に WebBrowser に対して何かしたのではないでしょうか?
InnerHtml プロパティによると「設定できる」なので、書き換えた source を InnerHtml に代入するとか、そういったことをすれば WebBrowser に反映されるかもしれませんね。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.htmlelement.innerhtml.aspx

ただ、今回のケースではきちんと動くかは保障できません。


> 他に方法があれば、是非ソースを記載してください。

たぶん、入れ子構造になっているから、一発で見つけられないのでしょう。
具体的なソースコードを提示してもよいのですが、前述の「自動取得は問題ないのか?」という見識をお伺いしてからにさせてください。
(感情を込めずに、ポイントを的確に書いてください)
引用返信 編集キー/
■68100 / inTopicNo.9)  Re[6]: web上のボタンのクリックの処理が分からない。
□投稿者/ Azulean (218回)-(2013/09/23(Mon) 14:56:48)
2013/09/23(Mon) 15:05:17 編集(投稿者)

編集で追加されているそうなので、具体事例を紹介しておきます。

No68097 (ジョニー さん) に返信
>>この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります
>
> 具体的にどこのサービスですか!?

確かに明示的に「禁止」とは書いているところを見つけるのは大変ですが、「禁止」したいと読み取れる、自動取得・ロボットによる取得に対して防御策を打っている事例を紹介します。

Microsoft アカウント
http://www.microsoft.com/ja-jp/msaccount/faq.aspx#faq05
「自動プログラムが大量のアカウントを作成してスパムを送信することを回避できます。」

Google アカウント
https://accounts.google.com/SignUp?hl=ja
具体的に禁じる記載はありませんが、「ロボットによる登録でないことを証明」というように、自動登録を排除する意思がみてとれます。

Yahoo! JAPAN
http://www.yahoo-help.jp/app/answers/detail/p/544/a_id/41993
「画像や音声による認証とは、悪意のあるプログラムからの不正なアクセス(無作為かつ連続したパスワード入力など)を防止するための認証システムです。」
悪意あるプログラムと限定しているが、実質的にどのようなプログラムであってもだめなようにガードしている。



今回の質問の件も「Blog を新しく開設する」なので、自動取得を拒みたいかもしれません。
問題ないか、一度、Google に聞いてみてはいかがでしょうか。
引用返信 編集キー/
■68101 / inTopicNo.10)  Re[7]: web上のボタンのクリックの処理が分からない。
□投稿者/ ジョニー (12回)-(2013/09/23(Mon) 15:09:51)
2013/09/23(Mon) 15:14:07 編集(投稿者)
2013/09/23(Mon) 15:10:21 編集(投稿者)

No68100 (Azulean さん) に返信
> 編集で追加されているそうなので、具体事例を紹介しておきます。
>
> ■No68097 (ジョニー さん) に返信
> >>この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります
>>
>>具体的にどこのサービスですか!?
>
> 規約で禁止しているところをすぐに見つけるのは大変なので、有名どころで自動取得・ロボットによる取得に対して防御策を打っている事例を紹介します。
>
> Microsoft アカウント
> http://www.microsoft.com/ja-jp/msaccount/faq.aspx#faq05
> 「自動プログラムが大量のアカウントを作成してスパムを送信することを回避できます。」
>
> Google アカウント
> https://accounts.google.com/SignUp?hl=ja

> 具体的に禁じる記載はありませんが、「ロボットによる登録でないことを証明」というように、自動登録を排除する意思がみてとれます。
>
> Yahoo! JAPAN
> http://www.yahoo-help.jp/app/answers/detail/p/544/a_id/41993
> 「画像や音声による認証とは、悪意のあるプログラムからの不正なアクセス(無作為かつ連続したパスワード入力など)を防止するための認証システムです。」
> 悪意あるプログラムと限定しているが、実質的にどのようなプログラムであってもだめなようにガードしている。

申し訳ありませんが、
その辺の事は十分認識しております。

別に上記は、自動化を禁止しているのではなく、
自動化をさせないために防止しているのではないですか?

私が聞きたいのは、アカウント取得に対して、
禁止しているサービスです。
引用返信 編集キー/
■68102 / inTopicNo.11)  Re[8]: web上のボタンのクリックの処理が分からない。
□投稿者/ ジョニー (14回)-(2013/09/23(Mon) 15:29:29)
2013/09/23(Mon) 15:33:20 編集(投稿者)

No68099 (Azulean さん) に返信
> 感情的になるのはかんたんですが、建設的ではないですし、あなたの批判するコメントを見て、スレッドにコメントが続かなくなる(非活性化する)恐れがあるので、感情的なコメントは書かない方がいいですよ。
> (質問者にとって損するようなことは書かない方がいいですよ)
>
> ■No68097 (ジョニー さん) に返信
>>■No68096 (Azulean さん) に返信
> >>この手(アカウント取得・開設に相当するもの)の自動化ってサービス提供者によっては禁止されていることもあります。
> >>Blogger.com がどうかはわかりませんが、Blog 新規作成まで自動化する必要はあるのでしょうか?
>>
>>必要がなければ、ここに質問はしないはずです。
>>それを再度、相手に尋ねるのはおかしい事と言うか
>>大変失礼だと思います。
>
> 私が失礼とか云々の前に、「禁止されていることがあります」という懸念の表明に対して、あなたの考えを提示していただけませんか?
> あなたが OK と判断できる根拠をお持ちであれば、それを共有していただいた方が回答を集めやすいでしょう。
>
> Google はたいていのサービスに対して API を公開しています。
> それに頼らない方法は認められていない可能性があるので、どうなのでしょうか?という疑問の投げかけた次第です。

> なお、アカウントの取得の例ではありませんが、岡崎市立中央図書館の事件は有名な事例です。
> 自動的に Web サービスを利用するプログラムをお書きになるのであれば、どういった事例だったのかを確認していただいた方がよいでしょう。
> この件では時間あたりの試行回数を制限した自動アクセスプログラムを作って運用されていた方が逮捕されるという自体に発展しています。

下記をよく読んだ方がよいと思いますが、、、

http://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6

起訴猶予処分で逮捕が必要であったかどうか疑問視する声もあると書いていますが、、、
最終的に逮捕されたとは書いてありません。


>>以前、別のプログラムで、これと同じように、nameもidもvalueも無い場合に
>>sourceのreplaceできちんとwebBrowser上で反映されたのですが、
>>何故でしょうか?
>>本当に影響は無いと言えるのでしょうか?
>
> そのように問う前に、前のコードと今回のコードの違いを見極めませんか?
> あるいは、もう一度 InnerHtml を取り出してみて変化しているかを確認することでも、私への疑問の提示とならず、確定情報を得られるはずです。
>
>
> 以前にできていたことが、今回はできないというのは、ベテランでもやりがちなミスです。
> その場合は「何が違うのか?」という観点で見直すことで、何らかのミスを見つけることができます。
>
> 差分を予想するに、変数を書き換えた後に WebBrowser に対して何かしたのではないでしょうか?
> InnerHtml プロパティによると「設定できる」なので、書き換えた source を InnerHtml に代入するとか、そういったことをすれば WebBrowser に反映されるかもしれませんね。
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.htmlelement.innerhtml.aspx
>
> ただ、今回のケースではきちんと動くかは保障できません。
>
>
>>他に方法があれば、是非ソースを記載してください。
>
> たぶん、入れ子構造になっているから、一発で見つけられないのでしょう。
> 具体的なソースコードを提示してもよいのですが、前述の「自動取得は問題ないのか?」という見識をお伺いしてからにさせてください。

ではあなたにお伺いいたします。
こういった自動アカウント取得ツールは違法ですか?

http://colorful-tukarangre.net/
http://easy.affiliate-powertools.com/yoriki/

そのほかにもいっぱいアカウント取得ツールは
この世の中にいっぱいありますが、
ブログだけでなく、、、
これって会社ですが、、、

http://www.internal.co.jp/products/marketing/affiliking/about/

この人たちみんな、全員逮捕されるのでしょうか?

私は別にスパム行為をしようとしているわけではありません。

提示する気がないのであれば、貴方からの回答は期待しません。
引用返信 編集キー/
■68103 / inTopicNo.12)  Re[9]: web上のボタンのクリックの処理が分からない。
□投稿者/ Azulean (219回)-(2013/09/23(Mon) 15:34:37)
No68102 (ジョニー さん) に返信
> 下記をよく読んだ方がよいと思いますが、、、
> ↓
> http://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6
>
> 起訴猶予処分で逮捕が必要であったかどうか疑問視する声もあると書いていますが、、、
> どこにも逮捕されたとは書いてありません。

Wikipedia より引用:

事件の経緯
> 同年4月15日、同図書館が迷惑なアクセスを受けていると愛知県警岡崎署に被害届を提出し、5月25日にアクセスを行っていた男性が蔵書検索システムに高頻度のリクエストを故意に送りつけたとして偽計業務妨害容疑で逮捕された。


> ではあなたにお伺いいたします。
> こういった自動アカウント取得ツールは違法ですか?

即座に違法ではないでしょう。
それを禁止する法令はないと思います。

私が問題とするのは、違法であるかではなく、サービス提供会社がどのように考えているかです。
アカウント取得に限らず、プログラムによるアクセスはサービス提供会社が意図していない操作です。
ある会社がそれを偽計業務妨害だと主張すればそうなりますし、別の会社が利用規約に同意していないのに登録したとして契約破棄することがあります。

プログラムが違法なのかと問われれば違法ではないと思われます。
そのプログラムを運用してもたらされる結果が違法性、契約に対する違反を問われるかどうかです。


No68101 (ジョニー さん) に返信
> 別に上記は、自動化を禁止しているのではなく、
> 自動化をさせないために防止しているのではないですか?
>
> 私が聞きたいのは、アカウント取得に対して、
> 禁止しているサービスです。

逆にお聞きしたいのですが、その2つの差異を明らかにすることに、あなたに何のメリットがありますか?
そこにこだわるのであれば、私の本意ではないので「禁止されていることがあります」の一文は撤回した上で「アカウントの自動取得を好ましくないと考えているサービスがある」と訂正させていただきます。

私の本意は、「サービス提供会社が認めているアクセス手段かどうかが白黒ついているか」です。それ以降、言いたい内容は大きく変わらないので、ある一点だけに固執しないようにしてください。
先のコメントにも追記しましたが、Google が OK といえば問題ないわけで、私の懸念が杞憂だったということで終わる話です。
引用返信 編集キー/
■68104 / inTopicNo.13)  Re[10]: web上のボタンのクリックの処理が分からない。
□投稿者/ ジョニー (15回)-(2013/09/23(Mon) 15:53:06)
2013/09/23(Mon) 16:08:58 編集(投稿者)

No68103 (Azulean さん) に返信
> ■No68102 (ジョニー さん) に返信
>>下記をよく読んだ方がよいと思いますが、、、
>>↓
>>http://ja.wikipedia.org/wiki/%E5%B2%A1%E5%B4%8E%E5%B8%82%E7%AB%8B%E4%B8%AD%E5%A4%AE%E5%9B%B3%E6%9B%B8%E9%A4%A8%E4%BA%8B%E4%BB%B6
>>
>>起訴猶予処分で逮捕が必要であったかどうか疑問視する声もあると書いていますが、、、
>>どこにも逮捕されたとは書いてありません。
>
> Wikipedia より引用:
>
> 事件の経緯
>>同年4月15日、同図書館が迷惑なアクセスを受けていると愛知県警岡崎署に被害届を提出し、5月25日にアクセスを行っていた男性が蔵書検索システムに高頻度のリクエストを故意に送りつけたとして偽計業務妨害容疑で逮捕された。

それが間違っていたのではないですか?

> Wikipedia より引用:
産業技術総合研究所情報セキュリティ研究センター、情報セキュリティー会社など3カ所による解析では男性の作成したクローラに違法性はなく、図書館の蔵書検索システムに不具合が存在していたと回答した[5]。

愛知県警では逮捕時にはプログラムの意図を把握していなかった。産総研主任研究員で情報セキュリティの専門家である高木浩光は、攻撃用のプログラムとは明白に違うプログラムであるとし捜査に疑問を呈している[2]。

>
>>ではあなたにお伺いいたします。
>>こういった自動アカウント取得ツールは違法ですか?
>
> 即座に違法ではないでしょう。
> それを禁止する法令はないと思います。
>
> 私が問題とするのは、違法であるかではなく、サービス提供会社がどのように考えているかです。
> アカウント取得に限らず、プログラムによるアクセスはサービス提供会社が意図していない操作です。
> ある会社がそれを偽計業務妨害だと主張すればそうなりますし、別の会社が利用規約に同意していないのに登録したとして契約破棄することがあります。
>
> プログラムが違法なのかと問われれば違法ではないと思われます。
> そのプログラムを運用してもたらされる結果が違法性、契約に対する違反を問われるかどうかです。
>
>
> ■No68101 (ジョニー さん) に返信
>>別に上記は、自動化を禁止しているのではなく、
>>自動化をさせないために防止しているのではないですか?
>>
>>私が聞きたいのは、アカウント取得に対して、
>>禁止しているサービスです。
>
> 逆にお聞きしたいのですが、その2つの差異を明らかにすることに、あなたに何のメリットがありますか?
> そこにこだわるのであれば、私の本意ではないので「禁止されていることがあります」の一文は撤回した上で「アカウントの自動取得を好ましくないと考えているサービスがある」と訂正させていただきます。
>
> 私の本意は、「サービス提供会社が認めているアクセス手段かどうかが白黒ついているか」です。それ以降、言いたい内容は大きく変わらないので、ある一点だけに固執しないようにしてください。
> 先のコメントにも追記しましたが、Google が OK といえば問題ないわけで、私の懸念が杞憂だったということで終わる話です。


あなたは、ソースコードを提供しても良いが、私の見識を述べてください
と仰られていたので、自動化についての見識を述べたまでです。

違法性がなく、相手に迷惑をかけなければ、問題はないのではないでしょうか?

異常にgoogleだけのアカウントを大量に取得するとか考えていませんし、
私は、お金がないので、アカウント取得ツールを持っていませんし、
ただ、プログラムでアカウント取得が出来れば便利だなと思って作っただけです。

画像認証はさすがに突破できませんが、、、
ただ、アカウントを作成するのに自動化が出来れば、いいなと思いまして、、、

たった一つのアカウントを取得するのに、プログラム上で行うと、
物凄いサーバーに負荷をかけてサーバーが壊れるのでしょうか?
googleを妨害することになるのでしょうか?

googleが嫌がっているのは、大量にアカウントを自動で作成されて、
異常に負荷をかけられて、サーバーが正常に動作しなくなるのが
怖いのではないでしょうか?

サーバーが正常に機能していれば、問題はないかと思いますが、
私の判断が間違っていれば、お詫び申し上げます。

どなたかの意見みたいに、
元々、ソースを提供する気が無いのかも知れませんが、、、

これだけ、私の見識を述べても、
ソースコードを提供して頂けないのであれば、

今後、貴方に聞くことはないかと思われます。m(_ _)m
引用返信 編集キー/
■68105 / inTopicNo.14)  Re[11]: web上のボタンのクリック
□投稿者/ Azulean (220回)-(2013/09/23(Mon) 16:09:49)
2013/09/23(Mon) 16:30:29 編集(投稿者)
No68104 (ジョニー さん) に返信
> それが間違っていたんじゃないんですか?

はい。ですが、過去に発生したという事実には変わりません。
結局、起訴されず、司法の場としては決着がついていないので、白黒つかずと言うことになります。
(起訴猶予は検察の裁量によって決まるので、起訴猶予になったから違法ではないとは言えません。
さらに言えば、起訴猶予は被疑事実が明白である中で情状酌量などによって訴追しないだけという位置づけであるので、検察は黒だと考えた処分となるため)

警察・検察の方も技術面で詳しい方々とは限らないので、サービス提供会社が訴えれば第 2 の事例が発生することがあり得ます。
揉めないようにするため、自身の安全のために、サービス提供会社の考え方を確認し、プログラムにも安全措置を施して暴走しないようにするなど、
リスクを低減することが必要だと思います。

もっとも、天下の Google がこの程度のアクセスで落ちるとか、サービス不全になるとは思いませんが、何らかの不具合を引いてしまう可能性は0ではないです。
(低いとは思います)


> あなたは、ソースコードを提供しても良いが、私の見解を述べてください
> と仰られていたので、見解を述べたまでです。
> 
> 違法性がなければ、問題はないのではないでしょうか?

いいえ。私は適法性だけを条件としたつもりはありません。


> たった一つのアカウントを取得するのに、プログラム上で行うと、
> 物凄いサーバーに負荷をかけてサーバーが壊れるのでしょうか?
> googleを妨害することになるのでしょうか?

たった一つのアカウントを取得する方法は、それを繰り返すだけで大量に取得できる方法になります。
そういった事実も鑑みると、アカウント取得の具体的なコードを出すのは正直、気が引けますので、Google が「よしとしているか」という根拠をお持ちであれば、
それを望んだ次第です。

ただ、ボタンを押せても、同じ URL のまま、HTML が書き換わり、次の入力フィールドを探せる力も必要なはずです。
これだけではアカウント取得は成立しないと判断して書いておきましょう。
説明はしません。自力で読解して、なぜこれだとうまくいくかを考えてください。

Queue<HtmlElementCollection> queue = new Queue<HtmlElementCollection>();
queue.Enqueue(webBrowser1.Document.Body.Children);
while (0 < queue.Count)
{
    var target = queue.Dequeue();
    if (target == null || target.Count == 0) continue;
    foreach (HtmlElement element in target)
    {
        queue.Enqueue(element.Children);
        if (element.TagName.Equals("button", StringComparison.OrdinalIgnoreCase))
        {
            if (!string.IsNullOrEmpty(element.InnerText) && element.InnerText.Equals("新しいブログ"))
            {
                element.InvokeMember("click");
                return;
            }
        }
    }
}



もう一点だけ書かせてください。
(ソース断片は上にあります)

■No68104 (ジョニー さん) に返信
> googleが嫌がっているのは、大量にアカウントを自動で作成されて、
> 異常に負荷をかけられて、サーバーが正常に動作しなくなるのが
> 怖いのではないでしょうか?

自動取得を拒否したい理由として想像される理由の一つはそれです。

ほかに考えられることは、ユーザに同意を求める画面をすっ飛ばされて、
契約・規約による縛りが効かないことです。
開発者はその操作ツールを作る際に、利用規約に同意しているでしょうから
よいとしても、そのツールを使った第三者は「利用規約に同意していないから
規約には縛られない」と主張する恐れがあります。
この主張が司法の場でどのように決着するかは定かではありませんが、
サービス提供会社としては回避したいリスクでしょう。

引用返信 編集キー/
■68106 / inTopicNo.15)  Re[12]: web上のボタンのクリック
□投稿者/ ジョニー (16回)-(2013/09/23(Mon) 16:45:10)
2013/09/23(Mon) 16:45:39 編集(投稿者)
No68105 (Azulean さん) に返信
> 2013/09/23(Mon) 16:30:29 編集(投稿者)
>
> ■No68104 (ジョニー さん) に返信
>>それが間違っていたんじゃないんですか?
>
> はい。ですが、過去に発生したという事実には変わりません。
> 結局、起訴されず、司法の場としては決着がついていないので、白黒つかずと言うことになります。
> (起訴猶予は検察の裁量によって決まるので、起訴猶予になったから違法ではないとは言えません。
> さらに言えば、起訴猶予は被疑事実が明白である中で情状酌量などによって訴追しないだけという位置づけであるので、検察は黒だと考えた処分となるため)
>
> 警察・検察の方も技術面で詳しい方々とは限らないので、サービス提供会社が訴えれば第 2 の事例が発生することがあり得ます。
> 揉めないようにするため、自身の安全のために、サービス提供会社の考え方を確認し、プログラムにも安全措置を施して暴走しないようにするなど、
> リスクを低減することが必要だと思います。

参考にさせて頂きます

> もっとも、天下の Google がこの程度のアクセスで落ちるとか、サービス不全になるとは思いませんが、何らかの不具合を引いてしまう可能性は0ではないです。
> (低いとは思います)
>
>
>>あなたは、ソースコードを提供しても良いが、私の見解を述べてください
>>と仰られていたので、見解を述べたまでです。
>>
>>違法性がなければ、問題はないのではないでしょうか?
>
> いいえ。私は適法性だけを条件としたつもりはありません。
>
>
>>たった一つのアカウントを取得するのに、プログラム上で行うと、
>>物凄いサーバーに負荷をかけてサーバーが壊れるのでしょうか?
>>googleを妨害することになるのでしょうか?
>
> たった一つのアカウントを取得する方法は、それを繰り返すだけで大量に取得できる方法になります。
> そういった事実も鑑みると、アカウント取得の具体的なコードを出すのは正直、気が引けますので、Google が「よしとしているか」という根拠をお持ちであれば、
> それを望んだ次第です。
>
> ただ、ボタンを押せても、同じ URL のまま、HTML が書き換わり、次の入力フィールドを探せる力も必要なはずです。
> これだけではアカウント取得は成立しないと判断して書いておきましょう。
> 説明はしません。自力で読解して、なぜこれだとうまくいくかを考えてください。

ポップアウト後の画面のHTMLは認識していますので、問題は無いかと思います。

> Queue<HtmlElementCollection> queue = new Queue<HtmlElementCollection>();
> queue.Enqueue(webBrowser1.Document.Body.Children);
> while (0 < queue.Count)
> {
> var target = queue.Dequeue();
> if (target == null || target.Count == 0) continue;
> foreach (HtmlElement element in target)
> {
> queue.Enqueue(element.Children);
> if (element.TagName.Equals("button", StringComparison.OrdinalIgnoreCase))
> {
> if (!string.IsNullOrEmpty(element.InnerText) && element.InnerText.Equals("新しいブログ"))
> {
> element.InvokeMember("click");
> return;
> }
> }
> }
> }


ソースの提供ありがとうございました。
勉強させて頂きます。

尚、下記ソースでも上手く行きました。
その前で止まっていて、下記までたどり着いていませんでした。

HtmlElementCollection elements = webBrowser1.Document.GetElementsByTagName("button");//
foreach (HtmlElement element in elements)
{
if (element.InnerText == "新しいブログ")
{
element.InvokeMember("click");
break;
}

}

> もう一点だけ書かせてください。
> (ソース断片は上にあります)
>
> ■No68104 (ジョニー さん) に返信
>>googleが嫌がっているのは、大量にアカウントを自動で作成されて、
>>異常に負荷をかけられて、サーバーが正常に動作しなくなるのが
>>怖いのではないでしょうか?
>
> 自動取得を拒否したい理由として想像される理由の一つはそれです。
>
> ほかに考えられることは、ユーザに同意を求める画面をすっ飛ばされて、
> 契約・規約による縛りが効かないことです。
> 開発者はその操作ツールを作る際に、利用規約に同意しているでしょうから
> よいとしても、そのツールを使った第三者は「利用規約に同意していないから
> 規約には縛られない」と主張する恐れがあります。
> この主張が司法の場でどのように決着するかは定かではありませんが、
> サービス提供会社としては回避したいリスクでしょう。

様々な情報を提供していただきありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -