1

Selenium 2JavaAPIを使用してWebページを操作しています。私の質問は:リンク先のコンテンツタイプをどのように検出できますか?

基本的に、これが背景です。リンクをクリックする前に、応答がHTMLファイルであることを確認したいと思います。そうでない場合は、別の方法で処理する必要があります。したがって、PDFファイルのダウンロードリンクがあるとしましょう。アプリケーションは、ブラウザで開くのではなく、そのURLの内容を直接読み取る必要があります。

目標は、現在の場所がHTML、PDF、XML、または適切なパーサーを使用してドキュメントから有用な情報を抽出するものであるかどうかを自動的に認識するアプリケーションを作成することです。

アップデート

追加された報奨金:特定のURLのコンテンツタイプを取得できる最良のソリューションに報酬を与えます。

4

3 に答える 3

5

Jochenが示唆しているように、コンテンツをダウンロードせずにContent-typeを取得する方法はHTTP HEADであり、SeleniumWebドライバーはそのような機能を提供していないようです。URLのコンテンツタイプを取得するのに役立つ別のライブラリを見つける必要があります。

これを実行できるJavaライブラリは、 Apache HttpComponents、特に HttpClientです。

(次のコードはテストされていません)

HttpClient httpclient = new DefaultHttpClient();
HttpHead httphead = new HttpHead("http://foo/bar");
HttpResponse response = httpclient.execute(httphead);
BasicHeader contenttypeheader = response.getFirstHeader("Content-Type");

System.out.println(contenttypeheader);

プロジェクトはHttpClient用のJavaDocを公開しています。HttpClientインターフェイスのドキュメントには良い例が含まれています。

于 2011-04-03T08:15:37.977 に答える
0

入ってくるデータを処理するコンテンツタイプを把握できます。なぜこれを最初に把握する必要があるのか​​わかりません。その場合は、HEADメソッドを使用して、Content-Typeヘッダーを確認します。

于 2011-03-27T16:50:04.577 に答える
0

DOMからすべてのURLを取得してから、各URLの最後の数文字を(Java正規表現を使用して)解析して、リンクタイプを判別できます。

最後のドットに続く文字を解析できます。たとえば、URLhttp://yoursite.com/whatever/test.pdfで、を抽出しpdf、それに応じてテストロジックを適用します。

私はあなたの問題を単純化しすぎていますか?

于 2011-03-31T18:55:22.927 に答える