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
スクレイピングを(ちょっと)楽したい技術
Search
Aipa
November 02, 2018
Technology
0
84
スクレイピングを(ちょっと)楽したい技術
スクレイピングを(ちょっと)楽したい技術
Aipa
November 02, 2018
Tweet
Share
More Decks by Aipa
See All by Aipa
Honoの導入を検討していたが、Honoの人が来沖するらしいので、急いでHonoを導入した話
commander_aipa
0
88
Dの意思は神を殺す
commander_aipa
0
18
ファインチューニングがしたい
commander_aipa
0
55
サクッと検索サーバを用意する
commander_aipa
0
77
リアクティブを知る1歩
commander_aipa
0
150
さっき作った
commander_aipa
0
160
WordPressと琉球の罪
commander_aipa
1
750
「アッー」で起こるパニックを解消する
commander_aipa
0
170
JavaScriptのProxyオブジェクトについて学ぶ(進捗無)
commander_aipa
0
180
Other Decks in Technology
See All in Technology
AWS アーキテクチャクイズ
yuu26
2
700
中央集権体制からDataOpsへの転換 / centralized-to-dataops-transformation
pei0804
7
1.4k
ビジネスとコード品質の接合点 そしてコード品質がそこに及ぼす影響 / The Intersections of Business and Engineering, and The Impact of Code Quality There
mtx2s
10
1k
TypeScript Quiz (Encraft #12 Frontend Quiz Night)
uhyo
2
320
期待しすぎずに取り組む両面 TypeScript
shozawa
2
290
任意コード実行の原理
ffri
0
170
単回帰分析について数式を追いながら実装してみた
kentaitakura
0
500
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
2.1k
10分でわかるfreeeのQA
freee
0
230
GraphQLに入門してみた
chiroruxx
2
120
技育祭2024春 LT Finatextホールディングス
kevinrobot34
1
160
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
470
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
319
20k
Design by the Numbers
sachag
274
18k
The World Runs on Bad Software
bkeepers
PRO
60
6.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
12
1.4k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.8k
Gamification - CAS2011
davidbonilla
76
4.5k
Adopting Sorbet at Scale
ufuk
66
8.5k
GraphQLの誤解/rethinking-graphql
sonatard
48
9.1k
Into the Great Unknown - MozCon
thekraken
10
830
What the flash - Photography Introduction
edds
64
11k
What's new in Ruby 2.0
geeforr
335
31k
Transcript
εΫϨΠϐϯάΛ ʢͪΐͬͱʣָ͍ٕͨ͠ज़ ࣾ-5ΞΠύʔୂ
͢͜ͱ
͢͜ͱ w Ϋϩʔϥʔ࡞ΔͷΊΜͲ͍͘͞ͷͰɺ͋ΔఔࣗಈԽ͍ͨ͠ w Ξϓϩʔν͕ϧʔϧϕʔεͱɺػցֶशͷख๏͕͋Δ w ࠓճϧʔϧϕʔεͷհ
ࣗݾհʢࠩʣ
ࣗݾհʢࠩʣ w ࢠڙ͕ੜ·Εͨᵋ ɾ㱼ɾ ᵇϔΠ̇ϔΠ̇ᵃ ɾ㱼ɾ ᵏ
൪
൪ w ʁʁʁʣʮ͊ɻ˓˓˓ɻήʔϜΛ࢝ΊΑ͏͔ʯ w ʮϧʔϧ؆୯ͩɺ͜͜ʹ̏ͭͷөը͕͋Δɻ̎࣌ؒҎʹ͜ͷ த͔Β̍ͭөըΛؑ͢Ε͍͍ɻ͠ࢹௌ͠ͳ͔ͬͨΓɺөը ͷ్தʹ৸མͪͯ͠͠·ͬͨΒήʔϜΦʔόʔͩʯ
͊͞ɻԿΛݟΔ͔બ
ਖ਼ղʢશ෦ݟͨͷϥϕϧʣ
Կ͕ݴ͍͍ͨͷ͔ w ҰൠͽʔΔཕөըΛબผ͢ΔྗΛΈʹ͚͍ͭͨ w ࣌ؒͱগֹͷ͕͍ۚͬͨͳ͍ήʔϜΦʔόʔ w ϚχΞཕͰ౿ΜͰΈ͍ͨ w ઌఔͷӈଆͷөըͷΑ͏ʹɺཕΛ౿ΜͰΈ͚ͨͲരൃͲ͜Ζ͔ ݁ߏ໘ന͍өըͩͬͨΓ͢Δ
w ͜ΕΛޮΑ͘ݟ͚͍͖͍ͭͯͨ
Կ͕ݴ͍͍ͨͷ͔ w ҰൠͽʔΔཕөըΛબผ͢ΔྗΛΈʹ͚͍ͭͨ w ࣌ؒͱগֹͷ͕͍ۚͬͨͳ͍ήʔϜΦʔόʔ w ϚχΞཕͰ౿ΜͰΈ͍ͨ w ઌఔͷӈଆͷөըͷΑ͏ʹɺཕΛ౿ΜͰΈ͚ͨͲരൃͲ͜Ζ͔ ݁ߏ໘ന͍өըͩͬͨΓ͢Δ
w ͜ΕΛޮΑ͘ݟ͚͍͖͍ͭͯͨ8FCαʔϏε࡞த
Կ͕ݴ͍͍ͨͷ͔ w ҰൠͽʔΔཕөըΛબผ͢ΔྗΛΈʹ͚͍ͭͨ w ࣌ؒͱগֹͷ͕͍ۚͬͨͳ͍ήʔϜΦʔόʔ w ϚχΞཕͰ౿ΜͰΈ͍ͨ w ઌఔͷӈଆͷөըͷΑ͏ʹɺཕΛ౿ΜͰΈ͚ͨͲരൃͲ͜Ζ͔ ݁ߏ໘ന͍өըͩͬͨΓ͢Δ
w ͜ΕΛޮΑ͘ݟ͚͍͖͍ͭͯͨ8FCαʔϏε࡞த
൪ऴΘΓ w #ڃөըΛϨϏϡʔ͍ͯ͠ΔϒϩάهࣄΛΫϩʔϧ w ϨϏϡʔهࣄʹϥϕϧʢ໘ന͔ͬͨPSͭ·Βͳ͔ͬͨʣ w Ϟσϧߏங w 7VFKTͰαΠτΛߏங
՝ w ΫϩʔϥʔΛఆظ࣮ߦ w εΫϨΠϐϯάͷࣗಈԽ w өըλΠτϧͷਖ਼نԽ w ϨϏϡʔੳͷਫ਼ w
αΠτσβΠϯ
՝ w ΫϩʔϥʔΛఆظ࣮ߦ w εΫϨΠϐϯάͷࣗಈԽ w өըλΠτϧͷਖ਼نԽ w ϨϏϡʔੳͷਫ਼ w
αΠτσβΠϯ
εΫϨΠϐϯάͷࣗಈԽ
εΫϨΠϐϯάͱʢΠϝʔδʣ HTML HTML ᶃ ᶄ ᶅ
ΊΜͲ͍͘͜͞ͱ w αΠτຖʹύʔε͢Δߏ͕ҧ͏ͨΊɺରԠ͢ΔϓϩάϥϜ ͷ༻ҙ w هࣄ63-ͷநग़ w هࣄͷநग़
ΊΜͲ͍͘͜͞ͱ w αΠτຖʹύʔε͢Δߏ͕ҧ͏ͨΊɺରԠ͢ΔϓϩάϥϜ ͷ༻ҙ w هࣄ63-ͷநग़ w هࣄͷநग़
Ξϓϩʔν w ϖʔδ͔Βίϯςϯπ͚ͩΛൈ͖ग़ͨ͢ΊͷγϯϓϧͰ؆୯ͳํ ๏ɻ w <OFX>هࣄͷεΫϨΠϐϯάΛػցֶशͰࣗಈԽ
ϖʔδ͔Βίϯςϯπ͚ͩΛൈ͖ग़ͨ͢Ίͷγϯ ϓϧͰ؆୯ͳํ๏ɻ w ͬ͘͟Γͱ͢Δͱ w େྔͷ8FCϖʔδͷεΫϨΠϐϯάॲཧΛλΠϓ͢Δͷେม w ίϯςϯπ͚ͩΛൈ͖ग़ͤͳ͍͔ w ࣗ࡞؆қ൛ίϯςϯπநग़ϩδοΫΛ࡞ͬͨΑʢ+BWBʣ
ϩδοΫઆ໌ αΠτ͔Βൈਮ w )UNMλάΛͱ͠ɺλάߏͷҐஔΛਂ͞ͱͯ͠ɺ Eͱ͢Δ w λάͷԼʹؚ·ΕΔςΩετྔΛMͱ͢Δ w λάͷԼͷࢠλάɻDͱ͢Δ S
= l 4 3 d 2c
ίʔυ͕͋Δ
Ͱ+BWBͳΜͰ͢Α
ͱ͍͏Θ͚Ͱ
࡞ΔϚϯɾɾɾɾɾɾɾ
Ͱ͖ͨϚΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞΞϯ
6TBHF 1 from trimmer_py.trimmer_py import search_max_score_tag 2 from urllib import
request 3 4 if __name__ == '__main__': 5 url = 'http://teenssexandwarmode.hatenablog.com/entry/2018/10/10/042129' 6 with request.urlopen(url) as f: 7 html = f.read() 8 # return bs4 object. 9 t = search_max_score_tag(html) 10 print(t.text)
ݕূ݁Ռ w దʹर͖ͬͯͨϒϩάهࣄ̑αΠτ͙Β͍͏·͍ͬͨ͘ w ࣗ࡞ΫϩʔϥʔʹΈࠐΜͩΒλΠτϧ࿙Εͱ͔͚͋ͬͨͲɺ΄ ΅΄΅͏·͍ͬͨ͘ʢ̐αΠτɾɾɾɻαϯϓϧ͕গͳ͍ʣ w ·͊Αͦ͞͏
ݕূ݁Ռ
ࡶײ
ࡶײ w هࣄͷऔಘϧʔϧϕʔεͰࣗಈԽͰ͖ͨ w هࣄҰཡͷऔಘࣗಈԽ͍ͨ͠ͳɻߟ͑Δ w #ڃϥΠϑΛόϥ৭ʹ͢ΔͨΊʹࣗવݴޠॲཧͷษڧΛؤுΔ