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
330
スクラムチームをやめて、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
8.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
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
260
ブロックチェーン / Blockchain
ks91
PRO
0
110
新アーキテクチャ「TiDB X」解説とDedicated比較 TiDB Cloud Premiumのゲーム運用活用を検証
staffrecruiter
0
120
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
8
390
Agentic Defenseとともにセキュリティエンジニアが輝き続けるには / How Security Engineers Can Keep Excelling with Agentic Defense
yuj1osm
0
120
ChatworkとBPaaS 異なる特性で学んだAI機能開発の ベストプラクティス
kubell_hr
2
3k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
840
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
500
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
1
180
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
350
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
50
55k
AI と創る新たな世界 / A New World Created with AI
ks91
PRO
0
120
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
860
Become a Pro
speakerdeck
PRO
31
6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
440
Large-scale JavaScript Application Architecture
addyosmani
515
110k
It's Worth the Effort
3n
188
29k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
Designing for Timeless Needs
cassininazir
1
250
Statistics for Hackers
jakevdp
799
230k
Being A Developer After 40
akosma
91
590k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
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 :)