์—…๋ฐ์ดํŠธ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
New releaseJul 27, 2026

Scrapling v0.4.12

๐Ÿ•ท๏ธ ์ ์‘ํ˜• ์›น ์Šคํฌ๋ž˜ํ•‘ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๋‹จ์ผ ์š”์ฒญ๋ถ€ํ„ฐ ์ „์ฒด ๊ทœ๋ชจ ํฌ๋กค๋ง๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค!

๊ณต์œ 

Scrapling Poster
Effortless Web Scraping for the Modern Web

Tests PyPI version PyPI package downloads Static Badge OpenClaw Skill
Discord X (formerly Twitter) Follow
Supported Python versions

์„ ํƒ ๋ฉ”์„œ๋“œ ยท Fetcher ์„ ํƒ ๊ฐ€์ด๋“œ ยท Spider ยท ํ”„๋ก์‹œ ๋กœํ…Œ์ด์…˜ ยท CLI ยท MCP ์„œ๋ฒ„

Scrapling์€ ๋‹จ์ผ ์š”์ฒญ๋ถ€ํ„ฐ ๋Œ€๊ทœ๋ชจ ํฌ๋กค๋ง๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ ์‘ํ˜• Web Scraping ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

ํŒŒ์„œ๋Š” ์›น์‚ฌ์ดํŠธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ•™์Šตํ•˜๊ณ , ํŽ˜์ด์ง€๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ์š”์†Œ๋ฅผ ์ž๋™์œผ๋กœ ์žฌ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. Fetcher๋Š” Cloudflare Turnstile ๊ฐ™์€ ์•ˆํ‹ฐ๋ด‡ ์‹œ์Šคํ…œ์„ ๋ณ„๋„ ์„ค์ • ์—†์ด ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค. Spider ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ผ์‹œ์ •์ง€/์žฌ๊ฐœ ๋ฐ ์ž๋™ ํ”„๋ก์‹œ ๋กœํ…Œ์ด์…˜์„ ๊ฐ–์ถ˜ ๋™์‹œ ๋ฉ€ํ‹ฐ ์„ธ์…˜ ํฌ๋กค๋ง์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ๋ชจ๋‘ Python ๋ช‡ ์ค„์ด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํƒ€ํ˜‘ ์—†๋Š” ์„ฑ๋Šฅ.

์‹ค์‹œ๊ฐ„ ํ†ต๊ณ„์™€ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ํ†ตํ•œ ์ดˆ๊ณ ์† ํฌ๋กค๋ง. Web Scraper๊ฐ€ ๋งŒ๋“ค๊ณ , Web Scraper์™€ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๋ชจ๋‘๋ฅผ ์œ„ํ•ด ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

from scrapling.fetchers import Fetcher, AsyncFetcher, StealthyFetcher, DynamicFetcher
StealthyFetcher.adaptive = True
p = StealthyFetcher.fetch('https://example.com', headless=True, network_idle=True)  # ํƒ์ง€๋ฅผ ํ”ผํ•ด ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค!
products = p.css('.product', auto_save=True)                                        # ์›น์‚ฌ์ดํŠธ ๋””์ž์ธ ๋ณ€๊ฒฝ์—๋„ ์‚ด์•„๋‚จ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํฌ๋ ˆ์ดํ•‘!
products = p.css('.product', adaptive=True)                                         # ๋‚˜์ค‘์— ์›น์‚ฌ์ดํŠธ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€Œ๋ฉด, `adaptive=True`๋ฅผ ์ „๋‹ฌํ•ด์„œ ์ฐพ์œผ์„ธ์š”!

๋˜๋Š” ๋ณธ๊ฒฉ์ ์ธ ํฌ๋กค๋ง์œผ๋กœ ํ™•์žฅ

from scrapling.spiders import Spider, Response

class MySpider(Spider):
  name = "demo"
  start_urls = ["https://example.com/"]

  async def parse(self, response: Response):
      for item in response.css('.product'):
          yield {"title": item.css('h2::text').get()}

MySpider().start()

At DataImpulse, we specialize in developing custom proxy services for your business. Make requests from anywhere, collect data, and enjoy fast connections with our premium proxies.

์นดํ…Œ๊ณ ๋ฆฌ