質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4561閲覧

会員制サイトにログインして検索データを抜き出したい

chapp

総合スコア233

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2015/01/24 16:20

お世話になってます。
何度か同じような質問をさせて頂いておりますが、頭を整理したいので、再度質問させて下さい。

例えば、Facebookのような会員サイトがあります。
そこには多くのユーザがいますが、そのユーザに代わってプログラムが自動でログインし、ユーザーが予め登録したキーワードでサイト内検索を行い、その結果を抽出・保存するといった一連の流れを、プログラムにて自動で行える仕組みを考えてます。

※ユーザに代わってデータを抽出したいので、ユーザ単位でログインする方式を考えており、アクセス元もユーザの数だけ違うアクセス元である必要があります。

この自動でログインするユーザは、予めこちら側のデータベースにユーザ自ら、ログインするためののIDとパスワードや、検索したいキーワードを保持しておくのですが、当初は、ウェブアプリケーションとしてPHPで構築するよう考えていました。

と、ここで質問させて下さい。

1.アクセス元をユーザ別にするには、ウェブベース(PHPでcronで廻したい)では無理でしょうか?

2.以前、 https://teratail.com/questions/5191 こちらで、似たような質問をさせていただいた際、Cookieによる認証が求められることがあるとご指摘頂いていたのですが、これだとウェブベースでcronを用いたPHPで組んだシステムだとアクセス元は一緒になるだけではなく、動作そのものが正常に機能しないということになるのでしょうか?

3.PHPとVBを以前に少々触っていたことがある、、というレベルなので、極力PHPで構築したいと思っていますが、PHPで出来るものなのでしょうか?

4.EXEファイルならぬインストール型のアプリであれば、必然的にユーザ単位でのアクセスとなるだろうと、素人なりに考えていますが、このインストール型のアプリの場合、今回の仕組みを考えるとどのような言語が適切なのでしょうか?

以上ですが、これまでPHPを触っては来ましたが、どれも簡単なものばかりで、今回の質問のように第三者のサイトにアクセスすることは経験が無く、何処から始めて行けばいいのかが整理が付かない状況です。

恐れ入りますが、上記質問に加え、準備して行く上でのポイント等もアドバイス頂けると幸いです。
宜しくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

会員制サイトはそもそも、そういった動作を想定していません。
なので、利用規約に反する可能性が非常に高いです。(ちゃんとした利用規約を書いているサイトでは、ですが・・・。)
付け加えて言うと、その作ろうとしているプログラムの動作次第では、法に抵触する可能性もそれなりにある事を事前によく考えて下さい。
また、そういった事を気兼ねなく行えるのは、自社サービスに対してだけですので、その点も重ねて申しあげておきます。

その上で、PHPでcookieを引き継いで使うこと自体は可能です。(たぶん他の方が簡単ですが)
ただ、セッションIDをログイン時に取ってくる場合が多いので、同一セッションでアクセスする間はそれを使う必要があります。
この辺はそのWebサイト毎に実装が違うので、それぞれでちゃんと動作を解析してやらないとうまくいかないと思います。
(セッションIDのkey、形式、有効時間、CSRF対策等)

複数ユーザで検証したいとの事ですが、同一IPからの複数セッションを許可していないサイトでは基本的に出来ません。
IPを詐称する事も可能ですが、これは普通はWebサーバ、もしくはLBで対策しているので、できないサイトは諦めるしかないと思います。
同一IPからの複数セッションが可能なサイトであれば、PHP側で複数のセッション情報を管理すれば可能なはずです。

中途半端な回答で申し訳ございませんが、あまり詳しくお話するとクラッキング講座みたいになるので、この辺までで。
ご自身で一度会員制のWebサービスをCMSを利用せずに作ってみると、大体のところが把握できると思います。

以上、ご参考になれば幸いです。

投稿2015/01/24 20:29

utun

総合スコア384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mpyw

2015/01/25 02:35

「ユーザに代わってログイン」するために「ユーザのIDとパスワードの入力を他のサイトが求める」のであれば利用規約に反する以前に…まず使おうと思うユーザが自分と身内以外誰もいないのでは?という疑問がありますね。実際に私も類似するサービスを叩き上げで作ったことがありますが、自分とごく限られた友人しか利用していません(最初に想定したとおり)。
utun

2015/01/25 09:11

利用規約で制限されている場合、ID,passをどう収集しているかに関わらず、ロボット等によるアクセス自体を禁止している場合が多いです。 例えばchapp様が例に挙げている「Facebook」ですが、利用規約の「3.安全」の第2項に、以下の様に書いてあります。 「弊社から事前に許可を得ることなく、自動化された手段(情報収集ボット、ロボット、スパイダー、スクレーパーなど)を使用して、Facebookにアクセスすることはできません。」 大手さんは、大抵この手の規約があると思います。 Twitterなんかは元々API利用前提なので、厳密な利用規約を設けた上で許可している形だったはずですが。
chapp

2015/01/26 01:10

utunさん おはようございます。お疲れの中、早朝の回答ありがとうございます。 また、追加でのご意見をありがとうございます。 規約に反して・・・仰る通りですね。法的に触れるような事はするつもりないので、実際に利用するかは、よく検討して行いたいと思います。客観的なご指摘ありがとうございます。 >中途半端な回答で申し訳ございませんが、あまり詳しくお話するとクラッキング講座みたいになるので、この辺までで。 いえいえ、こうして回答頂くだけでも大感謝です。 ただ、今回質問した仕組みは、これまで触れたことが無かったので、 実際に利用するか否かは、きちんと検証したいとは思いますが、プログラムの仕組みとしてもう少し把握したいので、今一度質問させて頂いても宜しいでしょうか。 これまで、会員専用サイトはオープンソース等は使わず作った事はあるのですが、制作において必要と思われる部分のみ調べながら構築したので、知識も乏しいかとは思っています。 そこで、 >PHPでcookieを引き継いで使うこと自体は可能です。(たぶん他の方が簡単ですが) >ただ、セッションIDをログイン時に取ってくる場合が多いので、同一セッションでアクセスする間はそれを使う必要があります。 このcookieの取扱いについて質問させて下さい。 これまでcookieという意味では、セットしたりcookieを取り出したりする程度しか行った事が無く、また、自動化という意味ではcronにてDBの登録状況を確認したり、メールを配信したりする程度しか構築したことが無いのですが、ブラウザが立ち上っていない状況において、「cookieは何処に保存される?」、「そのcookieの取扱いはどんな流れになる?」と疑問ばかりが残ります。 >複数ユーザで検証したいとの事ですが、同一IPからの複数セッションを許可していないサイトでは基本的に出来ません。 と仰っておられますが、もし「同一IPからの複数セッションを許可しているサイト」であった場合、このcookieの取扱いについてどんな感じになるのでしょうか? 自分自身が自らのPCでブラウザを立ち上げてアクセスする場合であれば、cookieの流れはイメージしているつもりですが、この自動化、かつ複数という状況においてのcookieの流れがイメージ出来ないのです。 この辺りのこと、ご教示頂けると幸いです。 また、 >複数ユーザで検証したいとの事ですが、同一IPからの複数セッションを許可していないサイトでは基本的に出来ません。 >IPを詐称する事も可能ですが、これは普通はWebサーバ、もしくはLBで対策しているので、できないサイトは諦めるしかないと思います。 との事ですが、同一のアクセス元(同一IP)でのアクセスが出来ない場合、.NETのようなインストール型のアプリであれば(ユーザー自身のPCからアクセス)であれば可能という事になるのでしょうか? もちろん、検証も必要なのでしょうが、この辺りのこともご意見頂けると助かります。 さらに、話が前後しますが、 >PHPでcookieを引き継いで使うこと自体は可能です。(たぶん他の方が簡単ですが) との事ですが、その簡単と言われている言語は何になるのでしょうか? 当方、PHPくらいしか触った経験が無いため(それとVBAを少々)、比較検討が全くできない状況です。 この辺りもご意見頂戴出来ると幸いです。 以上ですが、引続きアドバイス等頂戴出来ると助かります。 お忙しいなか恐縮ですが、宜しくお願い致します。
utun

2015/01/26 04:40

>このcookieの取扱いについて質問させて下さい。 PHPでWebページにアクセスする場合、curl等を利用すると思いますが、 情報自体はWebブラウザで受ける場合と同等のモノが取得できるので、cookieも自前で取得して管理する事が可能です。 私もPHPでそういったものを書いた事はありませんが、curl_setoptでcookieを保存するファイルを指定できる様です。 基本的にはこのcookieにセッション情報も含まれるので、これをユーザ毎に管理する事で、複数ユーザでのアクセスも原理的には可能なはずです。 curl_setoptでcookieを取得するのであれば、ユーザ毎に別のcookie保存ファイルを指定すれば良いかと思います。 >同一のアクセス元(同一IP)でのアクセスが出来ない場合、.NETのようなインストール型のアプリであれば(ユーザー自身のPCからアクセス)であれば可能という事になるのでしょうか? それは可能です。 アクセス元のIPが別なら、この部分は気にする必要はありません。 >その簡単と言われている言語は何になるのでしょうか? どれが簡単かというのは、それぞれの人のスキルセットにも依存しますが、 一般に言って、PHPは複雑な処理を記述し辛い言語です。 Apache連携前提のWebページバックエンドとしては非常に優秀な言語ですが、 独立したアプリケーションとして動かす場合は、他の言語(私ならRubyかNodeJS辺りでしょうか)を選択する方がベターかと思います。 但し、言語仕様として、いわゆるクラッキングに利用されるような動作を制限されている事があるので、 厳密に言って、確実にどのサイトでも原理的に動作可能と気軽に言えるのはC言語くらいかと思います。 そういう意味ではVC++辺りが最も汎用性が高く、確実に動作までもっていけるものかもしれません。 ただ、書くのはものすごい手間ですが・・・。
chapp

2015/01/26 05:58

お忙しい中、親切丁寧な回答をありがとうございます。 私自身、知識が乏しいなかで、アドバイス頂いた無いようなとても貴重です。 規約や法的に問題ないことを検証し、色々と試してみたいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問