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
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
760
ペアプロ・モブプロを広めるのに役立った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
AI時代こそ、スケールしないことをしよう -「作る人」から「なぜ作るか」を考える人へ / Do Things That Don't Scale in the AI Era — From How to Why
kaminashi
1
160
書籍セキュアAPIについて
riiimparm
0
350
エンタープライズデータへ安全につなぐ Production-ready なエージェント設計 ― AI × MCP リファレンスアーキテクチャ ― #AIDevDay
cdataj
1
110
PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
munakata
0
160
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
6
500
データエンジニアリングとドメイン駆動設計
masuda220
PRO
15
2.7k
「休む」重要さ
smt7174
7
1.7k
コンテナ・K8s研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
280
「待ち時間」の消滅と「自我消耗」の加速:生成AI時代のエンジニアを救うメンタル・リソース管理
poropinai1966
0
210
GoでCコンパイラを作った話
repunit
0
170
Claude CodeとAmazon Bedrock AgentCoreでつくる、自分だけのAIアシスタント
ymae
0
110
設計レビューとAIハーネスで向き合う AIが生み出した新しいボトルネックの対処法 / Design Reviews and AI Harnesses Against New Bottlenecks Created by AI
nstock
6
510
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
660
Documentation Writing (for coders)
carmenintech
77
5.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Mind Mapping
helmedeiros
PRO
1
290
For a Future-Friendly Web
brad_frost
183
10k
The browser strikes back
jonoalderson
0
1.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
380
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 :)