自動化されたスクリプトを使用して PHP Web ページに入力を渡す方法、つまり、スクリプトを使用してテキスト フィールドに引数を渡す方法を知りたいだけです。Webページのユーザー名とパスワードフィールドに入力を渡してから送信ボタンを押すようなものです(スクリプトでも)。
好ましい言語: JAVA
セレンを試してみてください。Selenium は Web ブラウザの自動化に優れています。
また、Java を純粋にサポートしています。しかしそれだけではありません。
カスタム メソッドについては、こちらを参照してください。
String urlParameters = "param1=a¶m2=b¶m3=c";
String request = "http://example.com/index.php";
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
connection.setUseCaches (false);
DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
connection.disconnect();
source ( Java - POST メソッドで簡単に HTTP パラメータを送信)
Web ページが GET メソッドを使用して (つまり URL から) データを受け入れる場合は、渡したいデータを提供する Web ページに接続するだけです。
http://www.mysite.com/mypage.html?data0=data0,data1=data1
Web ページが POST を使用している場合、状況はもう少し複雑になります: ヘッダーにすべてのデータを含む適切な HTML リクエストを作成する必要があります (POST メソッドが必要とするため)。
Apache HTTPClient を使用できます。次の例を参照してください。
http://hc.apache.org/httpclient-3.x/methods/post.html
これにより、完全に入力されたフォームを宛先ページに直接送信して結果を取得することをシミュレートできます。
呼び出しの後、応答でセッション Cookie を取得して保存し、「ログオン」したままにするために「アクセス」したい次のページに再送信する必要があることに注意してください。
入力を HTML に渡す方法を示したいと思います。私は通常、Python を使用して、データを入力する必要があるページにリクエストを送信します。その前に、Web Cookie を提供する必要があるかどうかを確認する必要があります。必要な場合は Cookie をコピーし、ログインする必要がある場合はそれを確認してください。それが完了したら、スクリプトを使用してデータを POST または GET するために使用するため、入力領域のフィールド名を知る必要があります。使用例はこちら。
import urllib
import urllib2
import string
headers = {'Cookie': 'You cookies if you need'}
values = {'form_name':'sample text', 'submit':''}
data = urllib.urlencode(values)
req = urllib2.Request('website where you making request to',data,headers)
opener1 = urllib2.build_opener()
page1=opener1.open(req)
#OPTIONAL
htmlfile=page1.read()
fout = open('MYHTMLFILE.html', "wb")
fout.write(htmlfile)
fout.close()