じっくり
コトコト
煮込んだ
Javaスープ
株式会社ビズリーチ
芹沢和洋
@seri_k
第二回 渋谷java
自己紹介
芹沢和洋
株式会社ビズリーチ
エンジニア
@seri_k
id:serihiro
Blog:seri::Programing Diary
エグゼクティブの転職サイト
の中の人
個人宣伝:
Slideshareの
日本語スライドを検索でき
るサービスとか
作ってます
http://slidesearch.jp
毎月のVPS代より高いドメイン(;・∀・)
一度は
営業さんとか
マーケさんから
受ける相談
○○っていうサイトから
××っていう情報集めてよ
こうプログラムでサクっと
明後日ぐらいにデータちょう
だい
いい感じに
どうする?
っつーか簡
単に言うな
• OSSのHTMLパーサー
• jQueryのセレクタっぽく
html要素を取得できる
• HTTPクライアントとしても使え
る子
そこでjsoupですよ
http://jsoup.org/
使い方
(setupはpomに書いてドーン)
Document doc =
Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines =
doc.select...
実行すると
<a href="/wiki/Thor%27s_hero_shrew" title="Thor's hero shrew">Thor's hero
shrew</a>
<a href="/wiki/Santiago_de_Compo...
このサンプルでパースする対象の
html(抜粋)
<div id="mp-itn">
<div style="float:right;margin-left:0.5em;"><a href="/wiki/File:Tragedia_en_San...
さらに<a>タグの文字列だけ欲しい
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines =
doc.select("#mp...
こいつは便利
• URLをそのまま指定できる
• テキストファイルのHTML読み込んでパースすることも出来
る
• HttpUrlConnection
• jQuery知ってればそのまま使える
• jQueryのセレクタの基本機能は大体使える
...
Httpクライアントとしても優秀
• Jsoup内で実装されているHttpConnectionクラスが何気に
便利(っていうかJava標準ライブラリにまともなのが無い)
doc = Jsoup
.connect("http://en.wikip...
get,postでデータ送信もできる
hashMap.put("homhom", "foo");
hashMap.put("oauth_id", "123456");
hashMap.put("oatuh_token", "kankore");...
まとめ
• jQuery知ってると凄く捗るライブラリ
• Httpクライアントとしても便利
• ってかjava.net.HttpURLConnection頑張れよ
宣伝:エンジニア募集中!
bizreach.co.jp
→採用情報から
エグゼクティブの転職サイト
の中の人
ご清聴ありがとうございました
このスライド作ってたらすげー腹減った
じっくりコトコト煮込んだJavaスープ
Upcoming SlideShare
Loading in …5
×

じっくりコトコト煮込んだJavaスープ

3,437 views

Published on

第二回渋谷Java LT #渋谷Java

Published in: Technology, News & Politics
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,437
On SlideShare
0
From Embeds
0
Number of Embeds
382
Actions
Shares
0
Downloads
7
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

じっくりコトコト煮込んだJavaスープ

  1. 1. じっくり コトコト 煮込んだ Javaスープ 株式会社ビズリーチ 芹沢和洋 @seri_k 第二回 渋谷java
  2. 2. 自己紹介 芹沢和洋 株式会社ビズリーチ エンジニア @seri_k id:serihiro Blog:seri::Programing Diary
  3. 3. エグゼクティブの転職サイト の中の人
  4. 4. 個人宣伝: Slideshareの 日本語スライドを検索でき るサービスとか 作ってます http://slidesearch.jp 毎月のVPS代より高いドメイン(;・∀・)
  5. 5. 一度は 営業さんとか マーケさんから 受ける相談
  6. 6. ○○っていうサイトから ××っていう情報集めてよ こうプログラムでサクっと 明後日ぐらいにデータちょう だい いい感じに
  7. 7. どうする? っつーか簡 単に言うな
  8. 8. • OSSのHTMLパーサー • jQueryのセレクタっぽく html要素を取得できる • HTTPクライアントとしても使え る子 そこでjsoupですよ http://jsoup.org/
  9. 9. 使い方 (setupはpomに書いてドーン) Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); Elements newsHeadlines = doc.select("#mp-itn b a"); String html = newsHeadlines.html(); System.out.println(html);
  10. 10. 実行すると <a href="/wiki/Thor%27s_hero_shrew" title="Thor's hero shrew">Thor's hero shrew</a> <a href="/wiki/Santiago_de_Compostela_derailment" title="Santiago de Compostela derailment">A train crash</a> <a href="/wiki/Prince_George_of_Cambridge" title="Prince George of Cambridge">Prince George of Cambridge</a> <a href="/wiki/2013_Dingxi_earthquakes" title="2013 Dingxi earthquakes">series of earthquakes</a> <a href="/wiki/2013_Colombian_clashes" title="2013 Colombian clashes">Clashes</a> <a href="/wiki/Philippe_of_Belgium" title="Philippe of Belgium">Philippe</a> <a href="/wiki/2013_Open_Championship" title="2013 Open Championship">Open Championship</a> <a href="/wiki/Deaths_in_2013" title="Deaths in 2013">Recent&nbsp;deaths</a> <a href="/wiki/Portal:Current_events" title="Portal:Current events">More&nbsp;current&nbsp;events...</a>
  11. 11. このサンプルでパースする対象の html(抜粋) <div id="mp-itn"> <div style="float:right;margin-left:0.5em;"><a href="/wiki/File:Tragedia_en_Santiago_de_Compostela_(a).jpg" title="Santiago de Compostela derailment"><img alt="Santiago de Compostela derailment" src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Tragedia_en_Santiago_de_Compostela_%28a%29. jpg/100px-Tragedia_en_Santiago_de_Compostela_%28a%29.jpg" width="100" height="67" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Tragedia_en_Santiago_de_Compostela_%28a% 29.jpg/150px-Tragedia_en_Santiago_de_Compostela_%28a%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Tragedia_en_Santiago_de_Compostela_%28a%29.jpg/ 200px-Tragedia_en_Santiago_de_Compostela_%28a%29.jpg 2x" /></a></div><ul><li style="-moz-float-edge: content-box"> <b> <a href="/wiki/Thor%27s_hero_shrew" title="Thor's hero shrew">Thor's hero shrew</a> </b> ….. </div>
  12. 12. さらに<a>タグの文字列だけ欲しい Document doc = Jsoup.connect("http://en.wikipedia.org/").get(); Elements newsHeadlines = doc.select("#mp-itn b a"); for (Element element : newsHeadlines) { System.out.println(element.html()); } Thor's hero shrew A train crash Prince George of Cambridge series of earthquakes Clashes Philippe Open Championship Recent&nbsp;deaths More&nbsp;current&nbsp;events...
  13. 13. こいつは便利 • URLをそのまま指定できる • テキストファイルのHTML読み込んでパースすることも出来 る • HttpUrlConnection • jQuery知ってればそのまま使える • jQueryのセレクタの基本機能は大体使える ※正規表現でセレクタ指定とかは出来ない模様 • child ,parentも取れる • id,class,Style要素とかも取れる • 昔ながらの getElementById,getElementByClass,getElementByTagsも使 える
  14. 14. Httpクライアントとしても優秀 • Jsoup内で実装されているHttpConnectionクラスが何気に 便利(っていうかJava標準ライブラリにまともなのが無い) doc = Jsoup .connect("http://en.wikipedia.org/") .userAgent( "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 “ ) .referrer("http://en.wikipedia.org/wiki/Main_Page") .cookie(“loggedin", “true") .timeout(3000) .post(); userAgentがないと蹴ら れるサイトも多い
  15. 15. get,postでデータ送信もできる hashMap.put("homhom", "foo"); hashMap.put("oauth_id", "123456"); hashMap.put("oatuh_token", "kankore"); doc = Jsoup .connect("http://en.wikipedia.org/") .data(hashMap) .timeout(3000) .post();
  16. 16. まとめ • jQuery知ってると凄く捗るライブラリ • Httpクライアントとしても便利 • ってかjava.net.HttpURLConnection頑張れよ
  17. 17. 宣伝:エンジニア募集中! bizreach.co.jp →採用情報から
  18. 18. エグゼクティブの転職サイト の中の人
  19. 19. ご清聴ありがとうございました このスライド作ってたらすげー腹減った

×