Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Fun Learning Web Scraping
Search
Daniel Garcia
September 11, 2015
Technology
59
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fun Learning Web Scraping
How to scrape, defend, and why it's ultimately futile.
Daniel Garcia
September 11, 2015
Other Decks in Technology
See All in Technology
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
790
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
640
WasmをRustにする
sansantech
PRO
0
260
Metadata - Section 1: HTML Basics
mohab1
0
120
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
160
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.1k
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
340
サブエージェントと Claude Mods で作る独自 Advisor ツールの話
kenichiodo
2
160
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
260
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
Featured
See All Featured
We Are The Robots
honzajavorek
0
400
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
Six Lessons from altMBA
skipperchong
29
4.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Transcript
Fun Learning Web Scraping queensjs.s02e02.mp4
Danny Garcia @buzzedword
• Director of Engineering/Operations at ClassPass • Full stack engineer,
DevOps day to day • First love is Javascript
Screen Scraping You should know about it
Simple Scraping
None
• Layout dependent • Difficult to traverse • Error prone
• RegEx not made for XML • Doesn’t support AJAX
Advanced Scraping
• Layout dependent • Doesn’t support AJAX
Browser Emulation
• Layout dependent • Slow
None
Screen Scraping You can beat it
Don’t make it easy • Are you using IDs? •
Are you HTML templating? • How identifiable are your components? • Randomly break your layout to stop scripts
All about AJAX • Defeats most RegEx scrapers • Defeats
most XMLParsers • Browsers can render AJAX • Don’t use easy to access AJAX routes • https://queensjs.com/page/2 • use https://queensjs.com/_ajax/pagination&?q=1
Know your enemy! • CSRF tokens for fields • User
authentication required • Use a paywall to discourage anonymity • Trace IP addresses • DMCA takedown request
None
Screen Scraping …it’ll still happen
Why? • Your data is amazing • You don’t have
an API • Backdoor feature request • Hackers!
Scraping happens but who does it?
None
None
None
None
None
None
None
Is it worth it?
Costs • Development time • Anchoring bad features • Never
stops • Alienating good engineers
What can you do? • No, really don’t use IDs.
• Layout changes do break scraping • Integrate attack vectors as new product features • Don’t panic
• Scraping on an individual level is a query •
Scraping in a cluster is an attack
Thank you! Danny Garcia @buzzedword ClassPass https://classpass.com/jobs