私は、Webページから情報を読み取るjavaを使用してアプリケーションを作成しようとしています。私が望む要素から情報をダウンロードするには、jsoup(優れたツール!)を使用しましたが、Webページで使用されるGridViewの次のページをロードします。 ページは、.aspxページで、2ページ目のリンクはそのようなものです:以下 JavaでHTMLUnit - GridViewページに移動する方法
<a href="javascript:__doPostBack('GridView1','Page$2')" style="color:White;">2</a>
が使用javascript関数である:現在
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
、私が使用してHTMLUnitそれをやろうとしていますしかし、動作していないように見えます。以下は、私が使用していたコードは次のとおりです。
私は、私は次のエラーを取得する第一のページを読んで同じコードを使用してページを読んfinal WebClient webClient = new WebClient(BrowserVersion.CHROME);
HtmlPage page = webClient.getPage("http://www.webpage.com/Main.aspx");
HtmlAnchor anchor = null;
List<HtmlAnchor> anchors = page.getAnchors();
for (int j = 0; j < anchors.size(); j++)
{
anchor = anchors.get(j);
String sAnchor = anchor.asText();
String sAnchorxml = anchor.asXml();
if (sAnchor.equals("2"))
{
HtmlPage page2 = anchor.click();
doc = Jsoup.parse(page2.asXml());
.....
:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at test.advacus.com.MainProgram.main(MainProgram.java:148)
私はエラーがであると仮定'Jsoup.parse()'
行。次のページをクリックすると、URLは変更されず、GridViewの情報だけが表示されるので、新しいURLを使用して解析することはできません。
jsoupにもっと協力してくれるHTMLUnitの代わりに、他のヘルプや推奨ツールがあれば、本当に助かります! ありがとうございます!追加情報について
編集:
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
HtmlPage page = webClient.getPage("http://www.qatarsale.com/EnMain.aspx");
HtmlAnchor anchor = page.getAnchorByText("2");
HtmlPage newPage = anchor.click();
HtmlElement el = newPage.getBody();
System.out.println(el.asText());
は、ページのURLを投稿することができますか? '__doPostBack'はおそらくjsoupで再現可能なバックグラウンドでリクエストをトリガーします。 –
こんにちはF.Klein .... http://qatarsale.com/EnMain.aspxはURLです... doPostBackはASP.Netサーバーに次のページパラメータを渡すように見えますが、残念ながら私は管理しませんでしたこのための新しいURLを見つける – thpst