ホームページ ウェブフロントエンド htmlチュートリアル Jsoup はページ データをクロールし、HTTP メッセージ headers_html/css_WEB-ITnose を理解します

Jsoup はページ データをクロールし、HTTP メッセージ headers_html/css_WEB-ITnose を理解します

Jun 24, 2016 am 11:55 AM

お勧めの本: ハッカー攻撃と防御技術コレクション Web 実践編

ところで、質問を残しておきます: Web または小規模なドメイン ネーム サーバーへの同時アクセスは可能ですか? jsoupを麻痺させるには?実際、jsoup に詳しい友人は、jsoup を使用して URL を解析し、非常に恥知らずな行為を行うことができます (ソース コードは機密に保たれます)。笑、JSOUP について簡単に紹介しましょう。

jsoup は、URL アドレス、HTML テキスト文字列、HTML ファイルを直接解析できる Java ベースの HTML パーサーです。これは、DOM、CSS、および jQuery のような操作メソッドを通じてデータを取得および操作するための、非常に低労力の API を提供します。

公式 Web サイトのダウンロード アドレス: http://jsoup.org/download、コア ライブラリをダウンロードします。プロジェクトをインポート

1: HTML テキスト文字列を解析

[java] プレーンコピーを表示

    /**
  1. * HTML ドキュメントを解析します。文字列型
  2. */
  3. ublic static void parseStringHtml(Str html) {
  4. Document doc = Jsoup.parse(html);//文字列をドキュメント形式に変換
  5. Elements e=doc.body().getAllElements();//body の下に設定されているノードを取得
  6. Elements e1=doc .select(" head");//ヘッドノードセットを取得
  7. Element e2=doc.getElementById("p");//html 上の id="p" を持つノードを取得
  8. System.out.println(e1) ;
2: URL を解析します。この部分が重要で、URL によっては直接接続できない場合があります。例: CSDN ドメイン名の Web サイト。この場合、メッセージ ヘッダー プロキシを設定する必要があります。それ以外の場合は、URL 取得時の HTTP エラー Status=403 などのエラーが報告されます。 http ステータス例外を待ちます。特定の HTTP ステータスの戻りコードについては、最後の部分、または推奨書籍

[java] view plain copy

    /**
  1. * リクエストアドレスから HTML を取得します
  2. */ を参照してください。
  3. public static void parseRequestUrl(String url) throws IOException{
  4. Connection con = Jsoup.connect(url);// リクエスト接続を取得します
  5. // // ブラウザで受け入れられる MIME タイプ。
  6. // con.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  7. // con.header(" Accept-Encoding", "gzip, deflate");
  8. // con.header("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 ");
  9. // con.header("接続", "キープアライブ");
  10. // con.header("ホスト", url);
  11. // con.header("ユーザーエージェント" , "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0");
  12. ドキュメント doc=con.get()
  13. 要素 select("a[href= /kff517]"); //ノードの背後にある属性は必要ありません
  14. 要素 test=doc.select("html body div#container div#body div#main div.main div#article_details.details div.article_manage scan.link_view ") ; ;
  15. System.out.println(hrefs);
  16. System.out.println(test.text()); //==.html js のメソッドと同様に、ノード内のテキストを取得します。 }
  17. 3: ローカル HTML ファイルを解析します。こちらも同様ですが、DOCUMENTの取得方法を変更します。


HTTP メッセージ ヘッダーに関する情報をまとめました。

GET /simple.htm HTTP/1.1 ---リクエスト メソッド、リクエスト オブジェクト、リクエスト http プロトコル
受け入れる: image/gif、image/x-xbitmap、image/jpeg、image/pjpeg、application/x- Shockwave-flash、application/vnd.ms-excel、application/vnd.ms-powerpoint、application/msword、*/* -- ブラウザが受信できる Content-type を指します
Accept-Language: zh -cn ---受信言語
Accept-Encoding: gzip、deflate --受信エンコーディング
User-Agent: Mozilla/4.0 (互換性、MSIE 6.0、Windows NT 5.1、SV1、.NET CLR 1.1) 4322; .NET CLR 2.0.50727) ブラウザの種類、オペレーティング システムの情報など、このマシンの関連情報。多くの Web サイトでは、使用しているブラウザとオペレーティング システムのバージョンを表示できます。この情報はこちらから。
ホスト: localhost:8080 ホストとポート、通常はインターネット上のドメイン名を指します
接続: Keep-Alive 永続的な接続が必要かどうか

返される完全な HTTP メッセージ
HTTP /1.1 200 OK ---HTTP/1.1 は、使用されるプロトコルを示します。 200OK は、サーバーから返されるステータス コードを指します。通常は返されます。 サーバー: Microsoft-IIS/5.1
X-Powered-By: ASP.NET
日付: 2006 年 3 月 3 日金曜日 06:34 :03 GMT ;CR>
Content-Length: 37

hello world

注:
HTTP リクエスト ヘッダーの概要
HTTP クライアント プログラム (ブラウザなど) は、サーバーにリクエストを送信するときにリクエスト タイプ (通常は GET または POST) を指定する必要があります。必要に応じて、クライアント プログラムは他のリクエスト ヘッダーを送信することもできます。Content-Length が POST リクエストに存在する必要がある場合を除き、ほとんどのリクエスト ヘッダーは必要ありません。 Accept: ブラウザーが受け入れることができる MIME タイプ。 Accept-Charset: ブラウザーがデコードできるデータ エンコード方式。多くの場合、ブラウザは gzip でエンコードされた HTML ページを返します。これにより、ダウンロード時間が 5 ~ 10 倍短縮されます。サーバーが複数の言語を提供できる場合に、ブラウザが期待する言語タイプです。使用されるバージョン。認可: 認可情報は通常、サーバーによって送信される WWW-Authenticate ヘッダーへの応答に表示されます。接続: 永続的な接続が必要かどうか、またはサーブレットがこの値を「Keep-Alive」と認識するかどうかを示します。リクエストでは HTTP 1.1 が使用されます (HTTP 1.1 はデフォルトで永続接続を使用します。これにより、ページに複数の要素 (アプレット、画像など) が含まれる場合に永続接続を活用でき、ダウンロード時間を大幅に短縮できます。これを実現するには、サーブレットは応答で Content-Length ヘッダーを送信する必要があります。これを実現する最も簡単な方法は、まずコンテンツを ByteArrayOutputStream に書き込み、次にコンテンツを正式に書き出す前にそのサイズを計算することです。
Content-Length: リクエストメッセージボディの長さを示します。
Cookie: これは最も重要なリクエスト ヘッダー情報の 1 つです。
From: リクエスト送信者の電子メール アドレス。一部の特別な Web クライアント プログラムで使用され、ブラウザーでは使用されません。

ホスト:初期URLのホストとポート。

If-Modified-since: 指定された日付以降に変更された場合にのみ要求されたコンテンツを返し、それ以外の場合は 304 "Not Modified" 応答を返します。
プラグマ: "no-cache" 値を指定すると、サーバーは、たとえそれがプロキシ サーバーであり、既にページのローカル コピーを持っていたとしても、更新されたドキュメントを返さなければならないことを意味します。
リファラー: ユーザーが現在リクエストしているページにアクセスするための URL が含まれます。
User-Agent: ブラウザの種類。サーブレットによって返されるコンテンツがブラウザの種類に関連する場合、この値は非常に便利です。
UA-Pixels、UA-Color、UA-OS、UA-CPU: 特定のバージョンの IE ブラウザーによって送信される、画面サイズ、色深度、オペレーティング システム、CPU タイプを示す非標準のリクエスト ヘッダー。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

< Progress>の目的は何ですか 要素? < Progress>の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

< datalist>の目的は何ですか 要素? < datalist>の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

< meter>の目的は何ですか 要素? < meter>の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? < iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、< iframe>外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

See all articles