Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Androidでスクレイピングした話 / Talk of scraping with Android
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
futabooo
February 01, 2018
Technology
5.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidでスクレイピングした話 / Talk of scraping with Android
futabooo
February 01, 2018
More Decks by futabooo
See All by futabooo
Android Jetpack Navigation Deep Links Tips
futaboooo
0
630
チームの学びを活かす全社での取り組み / company wide efforts to make use of team's learning
futaboooo
1
750
ペアプロ・モブプロを広めるのに役立ったControl Chartの使い方 / How to use Control Chart which helped spread Pair or Mob Programing
futaboooo
2
340
スクラムチームをやめて、20人でカンバン運用してきた半年間の軌跡 / Stop Scrum Start Kanban
futaboooo
19
19k
InvisionのAndroidアプリでみる4つのデザイン基本原則 / Four design basic principles seen in Invision's Android application
futaboooo
2
2.5k
Pairsの開発のすべて / all of Pairs development
futaboooo
1
2.7k
モブプログラミングという開発スタイル、あるいは生産性について / On development style called mob programming, or productivity
futaboooo
5
9k
新人スクラムマスターが開発者と兼任しながらやってきた事と成果/What the newcomer Scrum Master came while concurrently serving as a developer and the result
futaboooo
1
2k
What I did for Google IO since then
futaboooo
1
470
Other Decks in Technology
See All in Technology
穢れた技術選定について
watany
6
490
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
2
180
最適な自走を最小限の支援で — M&Aで拡大する組織で少人数SREが挑んだ1年 / SRE NEXT 2026
genda
0
1.1k
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
320
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
230
AICoEでAIネイティブ組織への進化
yukiogawa
0
170
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
180
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
210
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
700
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
220
kintone の AI コワーカーを、 Anthropic にエージェントを"ホストさせて"作った話 #devkinmeetup
sugimomoto
0
100
ZOZOTOWNの進化と信頼性を両立する負荷試験
zozotech
PRO
2
160
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Music & Morning Musume
bryan
47
7.3k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
930
Speed Design
sergeychernyshev
33
1.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Transcript
@futabooo Connehito Marché #1ʙAndroidࢢʙ #ConnehitoMarche AndroidͰεΫϨΠϐϯάͨ͠
2 About me 4FOJPS&OHJOFFS4DSVN.BTUFSBUFVSFLB *OD +BWB ,PUMJO (PMBOH
5ZQF4DSJQU "OHVMBS+4 'BOUBTZ&BSUI;FSP T$3:FE 4QMBUPPO GVUBCPPP ɹɹɹೋ ོߒʢTakahiro Futagawaʣ
3 About eureka ैۀһ ໊ʢฏۉྸࡀʣ ࣄۀ༰
ࣗࣾαʔϏεاըɾ։ൃɾӡӦ 1BJST $PVQMFT ձࣾ֓ཁ
4 About eureka
ࠓͷ
https://droidkaigi.jp/2018/proposals
Έͳ͞ΜຊΛಡΜͩ͋ͱͲ͏͠·͔͢ʁ
ಡΜͩ༰Λه͓͖ͯͨ͘͠ͳΓ·ͤΜ͔ʁ
https://bookmeter.com/
10 ಡॻϝʔλʔ ಡΜͩຊΛײͱͱʹهͰ͖Δ ಡΜͩྔΛཧ͢Δ͜ͱ͕Ͱ͖Δ
AndroidΞϓϦ͕ͳ͍
ͳ͚Εͭ͘Ε͍͍
࡞ͬͨ
࣮ͷհ
15 ࣮ͷհ KIZKTPVQ +BWB)5.-1BSTFS XJUICFTUPG%0. $44 BOEKRVFSZ
ϩάΠϯը໘
interface LoginService { @GET("/login") fun get(): Observable<ResponseBody> @FormUrlEncoded @POST("/login") fun
login( @Field("session[email_address]") mail: String, @Field("session[password]") password: String, @Field("authenticity_token") authenticityToken: String): Observable<ResponseBody> }
retrofit.create(LoginService::class.java).get() .flatMap { val reader = BufferedReader(InputStreamReader(it.byteStream())) val result =
reader.readLines().filter(String::isNotBlank).toList() val token = Jsoup.parse(result.toString()) .select("form input[name=authenticity_token]").attr("value") } .subscribeBy( onNext = { val reader = BufferedReader(InputStreamReader(it.byteStream())) val result = reader.readLines().filter(String::isNotBlank).toList() val alert = Jsoup.parse(result.toString()) .select(“div.container li.bm-flash-item—alert").isNotEmpty() if (alert) { Timber.i("E-mail or Password is wrong") contract.failureLogin() return@subscribeBy } }, onError = { Timber.e(it, it.message) } )
ར༻ͨ͠πʔϧ
postman, Charles, Chrome dev tool
ϋϚͬͨͱ͜Ζ
ಥવͷ༷มߋ❗
23 ಥવͷ༷มߋ ظٳΈ໌͚ʹΞϓϦʹϩάΠϯͰ͖ͳ͘ͳͬͨ ৽͍͠ηΩϡϦςΟରࡦͰ3FRVFTUʹ5PLFO͕ඞཁʹͳ͍ͬͯͨ εΫϨΠϐϯάͳͷͰͳΤϥʔ͕ฦ͞ΕΔΘ͚Ͱͳ͍ ௐࠪʹ̍ि͔͚ؒͯमਖ਼
·ͱΊ
25 ·ͱΊ "OESPJEΞϓϦ͕ແ͍͚Ͳ͍͍ͨαʔϏε͕͋ͬͨΒ࡞ͬͪΌ͑ྑ͍ ͱ͍͑εΫϨΠϐϯάಥવͷ༷มߋͰ͙͢ࢮ͵ ΞϓϦͷίʔυHJUIVCެ։ͯ͠·͢ GVUBCPPP#PPL-JGF
Credit: NASA Earth Observatory/NOAA NGDC Thank you :)