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

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

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

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

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

Python

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

Q&A

解決済

2回答

5378閲覧

会員に代わって自動ログイン、そしてデータ収集。PHPで出来ますか?

chapp

総合スコア233

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

PHP

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

Python

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

0グッド

5クリップ

投稿2015/01/09 15:09

お世話になっております。2回目の質問となります。

ある会員専用サイトがあり、個々の会員に与えられたIDとパスでログインして利用するサービスがあります。

そのサービスには情報を取りだすためキーワード等の検索機能が存在します。

ここで質問させて下さい。以上、よくあるタイプのサイトですが、各会員に代わって、30分の一度のペースで自動でログインし、会員が望むキーワードにて検索し、その結果を抽出する仕組みが出来ればと考えていますが、これら一連の仕組みは、どのような言語にて実現出来るのでしょうか?

比較的似た仕組みのソフトがウィンドウズアプリで見た事はありますが、多くのOSが存在する現在においては、インストール型のアプリ出なく、ASP型のサービスとして提供する方が良いのかな?とも考えてます。

現在、当方はPHPしか知識がないため(会員データはMySQLを想定)、出来ることであればPHPで構築したいと思っているのですが、この自動ログインという仕組みが想像出来ず、この仕組みを実現するために、PHPであればどのような仕組みになるのか?また他言語であればどのような言語が理想なのか?(出来ればPHPと連携出来れば尚良いがそれは可能?)等、アドバイス頂ければと思っています。

夜中も自動で収集する仕組みにしたいので、ウェブベースが理想かと思いますが、この辺りも含め、一連の仕組みに関して、言語やアプリケーションの種類等ご教示頂ければ幸いです。

前回、別件ではありますが対応出来るであろう近い回答を頂いていますが、改めて的確に指導頂ければと考えての質問です。

お忙しいなか恐縮ですが宜しくお願い致します。

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

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

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

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

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

guest

回答2

0

PEARを利用できる環境であれば、HTTP::Request2を応用してみてはいかがでしょうか。
UserAgentの書き換えやProxyの実装は勿論、Cookieとセッションの取り扱いが容易です。

投稿2015/03/11 03:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

chapp

2015/03/11 04:23

10yendamaさん はじめまして。ご親切なアドバイスをありがとうございます。 PEARですか!HTTP::Request2なるもの調べてみます。 ご親切なアドバイスに感謝いたします。ありがとうございました!
guest

0

ベストアンサー

HTTP/HTTPSでGET/POSTのできる言語であれば何でもよいと思いますよ。
一度ブラウザで実際にログインしてみて、開発者ツールで行われる通信を見て、その中から必要なものを取捨選択し、それを実現するようコードに落とし込むだけです。
要求を送るサーバーによっては特定のUser-Agentしか受け付けていない場合もあるのでそこは注意が必要です。
また、Cookie認証が必要な場合があります。
これらはPHPで十分実現可能です。モバイルから書き込んでいるのもありサンプルコードは控えさせていただきますが、難しいことはしなくても大丈夫です。

30分に一度と言うことですが、これはUNIX系ならcron、Windows系ならタスクスケジューラで実現できます。

投稿2015/01/09 23:36

htsign

総合スコア870

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

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

chapp

2015/01/10 01:22

htsignさん はじめまして。おはようございます。 ご親切な回答をありがとうございます。 回答いただき、PHPで、cronを利用し構築を試みたいと思います。 しかし、これまでcronは利用しているが、そのcronを利用し、ブラウザが開かれない状態で第三者のサーバーにアクセスしてログインして処理を行うというのが、お恥ずかしながらイメージ出来ません。再度質問させて下さい。 >開発者ツールで行われる通信を見て、その中から必要なものを取捨選択 →とは具体的にどの部分を見れば宜しいのでしょうか? >特定のUser-Agentしか受け付けていない場合もある →とはASPならぬウェブアプリのようなものは無理という事になるんでしょうか?ウィンドウズアプリのようにここにアクセスする仕組みであれば大丈夫ということですか? >Cookie認証が必要な場合 →とは、これによりどのような弊害が考えられるのでしょうか?またそれを見分ける事は出来るものなのでしょうか? 以上、質問ばかりで恐縮ですが、引続きご対応い頂けると幸いです。 宜しくお願い致します。
htsign

2015/01/10 03:53

> 具体的にどの部分を見れば宜しいのでしょうか? 例えばIE11でteratailの質問一覧から検索することを考えてみます。 F12キーを押して出てくるWeb開発者向けの機能の中で、ネットワークタブに該当するものがそれです。 ここで、F5キーを押してキャプチャを開始したのち検索欄に「test」と入力すると、 /questions/search?type=box&q=test&search_type=and に対してPOSTしていることが分かるかと思います。 ですから、これをPHPを用いて実装するのです。POSTの方法はググればいくらでも出てくると思いますが、こんな感じでしょうか。 <?php $url = "http://teratail.com/questions/search?type=box&q=test&search_type=and"; $opt = array("http" => array( "method" => "POST", "header" => "User-Agent: Fake Browser" )); $responseContent = file_get_contents($url, false, stream_context_create($opt)); echo($responseContent); ?> > ASPならぬウェブアプリのようなものは無理という事になるんでしょうか? User-Agentはリクエストする側がHTTPヘッダに乗せて送信する情報です。 上記コードのように任意のものを送信できるので、例えばここでFirefoxのUser-Agentを偽装すれば、 Webサーバ側からはあたかも正規のブラウザからリクエストされたかのように見えます。 > これによりどのような弊害が考えられるのでしょうか? 弊害というか、正しいCookieを送ってこない相手に対して403などの結果を返却してくることがあるというだけです。
htsign

2015/01/10 04:01

すみません、補足です。 PHPでHTTPS通信をするためにはopensslの利用設定など、いくらかの下準備が必要なため、teratailの検索窓は例として不適当だったかもしれません。 また、PHPによるPOSTの方法はこれだけではないはずなので、いろいろ調べてみてください。
chapp

2015/01/10 04:20

htsignさん お忙しいなか早速の回答をありがとうございます。 教えて頂いた内容を元に、色々と調べながら試してみたいと思います。 またお世話になることもあるかもしれませんが、ひとまずこのスレッドは解決済みとして閉じようと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問