Your SlideShare is downloading. ×
じっくりコトコト煮込んだJavaスープ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

2,558
views

Published on

第二回渋谷Java LT #渋谷Java

第二回渋谷Java LT #渋谷Java

Published in: Technology, News & Politics

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,558
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. じっくり コトコト 煮込んだ Javaスープ 株式会社ビズリーチ 芹沢和洋 @seri_k 第二回 渋谷java
  • 2. 自己紹介 芹沢和洋 株式会社ビズリーチ エンジニア @seri_k id:serihiro Blog:seri::Programing Diary
  • 3. エグゼクティブの転職サイト の中の人
  • 4. 個人宣伝: Slideshareの 日本語スライドを検索でき るサービスとか 作ってます http://slidesearch.jp 毎月のVPS代より高いドメイン(;・∀・)
  • 5. 一度は 営業さんとか マーケさんから 受ける相談
  • 6. ○○っていうサイトから ××っていう情報集めてよ こうプログラムでサクっと 明後日ぐらいにデータちょう だい いい感じに
  • 7. どうする? っつーか簡 単に言うな
  • 8. • OSSのHTMLパーサー • jQueryのセレクタっぽく html要素を取得できる • HTTPクライアントとしても使え る子 そこでjsoupですよ http://jsoup.org/
  • 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. 実行すると <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. このサンプルでパースする対象の 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. さらに<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. こいつは便利 • URLをそのまま指定できる • テキストファイルのHTML読み込んでパースすることも出来 る • HttpUrlConnection • jQuery知ってればそのまま使える • jQueryのセレクタの基本機能は大体使える ※正規表現でセレクタ指定とかは出来ない模様 • child ,parentも取れる • id,class,Style要素とかも取れる • 昔ながらの getElementById,getElementByClass,getElementByTagsも使 える
  • 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. 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. まとめ • jQuery知ってると凄く捗るライブラリ • Httpクライアントとしても便利 • ってかjava.net.HttpURLConnection頑張れよ
  • 17. 宣伝:エンジニア募集中! bizreach.co.jp →採用情報から
  • 18. エグゼクティブの転職サイト の中の人
  • 19. ご清聴ありがとうございました このスライド作ってたらすげー腹減った