<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: VISHNU VARDHAN REDDY</title>
    <description>The latest articles on Forem by VISHNU VARDHAN REDDY (@vishnuvardhanreddy).</description>
    <link>https://forem.com/vishnuvardhanreddy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3238313%2F2009f7a9-4747-45a3-b23a-6c0e8ad3b08f.png</url>
      <title>Forem: VISHNU VARDHAN REDDY</title>
      <link>https://forem.com/vishnuvardhanreddy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/vishnuvardhanreddy"/>
    <language>en</language>
    <item>
      <title>ScrapeSome: Effortless Web Scraping for JavaScript Heavy Sites — The Developer Friendly Scraper That Just Works</title>
      <dc:creator>VISHNU VARDHAN REDDY</dc:creator>
      <pubDate>Mon, 02 Jun 2025 06:57:53 +0000</pubDate>
      <link>https://forem.com/vishnuvardhanreddy/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-the-developer-friendly-scraper-4dpp</link>
      <guid>https://forem.com/vishnuvardhanreddy/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-the-developer-friendly-scraper-4dpp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tired of 403s and blank pages when scraping JavaScript-heavy websites?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Looking for one library which can take care of 403, js rendering automatically?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You're not alone — and that's exactly why I built &lt;strong&gt;ScrapeSome&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🚀 What Is ScrapeSome?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ScrapeSome&lt;/strong&gt; is a developer-friendly Python library that makes scraping modern websites simple — even the ones loaded with dynamic JavaScript or tough anti-bot protections.&lt;/p&gt;

&lt;p&gt;It’s fast, lightweight, and requires &lt;em&gt;zero&lt;/em&gt; boilerplate.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Why I Built It
&lt;/h2&gt;

&lt;p&gt;I kept hitting walls on scraping projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pages rendered everything with JavaScript&lt;/li&gt;
&lt;li&gt;APIs were locked down or undocumented&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;requests&lt;/code&gt;/&lt;code&gt;Scrapy&lt;/code&gt; failed or got 403 error&lt;/li&gt;
&lt;li&gt;Setting up full browser automation felt too heavy for small jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;ScrapeSome&lt;/strong&gt; — to fill the gap between &lt;code&gt;requests&lt;/code&gt; and full-on headless scraping frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why Use ScrapeSome?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Handles both static and JS-heavy pages out of the box&lt;/li&gt;
&lt;li&gt;Supports both sync and async scraping&lt;/li&gt;
&lt;li&gt;Converts raw &lt;code&gt;HTML&lt;/code&gt; into clean &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;JSON&lt;/code&gt;, or &lt;code&gt;Markdown&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Works with minimal configuration (&lt;code&gt;pip install scrapesome&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Handles &lt;code&gt;timeouts&lt;/code&gt;, &lt;code&gt;retries&lt;/code&gt;, &lt;code&gt;redirects&lt;/code&gt;, &lt;code&gt;user agents&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔁 Sync + Async scraping support&lt;/li&gt;
&lt;li&gt;🔄 Automatic retries and intelligent fallbacks&lt;/li&gt;
&lt;li&gt;🧪 Playwright rendering fallback for JS-heavy pages&lt;/li&gt;
&lt;li&gt;📝 Format responses as raw HTML, plain &lt;strong&gt;text&lt;/strong&gt;, &lt;strong&gt;Markdown&lt;/strong&gt;, or structured &lt;strong&gt;JSON&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;⚙️ Configurable: timeouts, redirects, user agents, and logging&lt;/li&gt;
&lt;li&gt;🧪 Test coverage with &lt;code&gt;pytest&lt;/code&gt; and &lt;code&gt;pytest-asyncio&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚖ Comparison with Alternatives
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;ScrapeSome ✅&lt;/th&gt;
&lt;th&gt;Scrapy&lt;/th&gt;
&lt;th&gt;Selenium/UC&lt;/th&gt;
&lt;th&gt;Playwright (Raw)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ Sync + Async Scraping&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;❌ Async only*&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 JS Rendering (Fallback)&lt;/td&gt;
&lt;td&gt;✅ Seamless&lt;/td&gt;
&lt;td&gt;❌ Plugin setup&lt;/td&gt;
&lt;td&gt;✅ Full&lt;/td&gt;
&lt;td&gt;✅ Full&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📝 Output as JSON/Markdown/HTML&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;❌ Requires custom&lt;/td&gt;
&lt;td&gt;❌ Manual parsing&lt;/td&gt;
&lt;td&gt;❌ Manual parsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔁 Retry &amp;amp; Timeout Handling&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;⚠️ Requires config&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚡ Minimal Setup (Boilerplate)&lt;/td&gt;
&lt;td&gt;✅ Near zero&lt;/td&gt;
&lt;td&gt;❌ Needs project&lt;/td&gt;
&lt;td&gt;❌ Driver setup&lt;/td&gt;
&lt;td&gt;❌ Browser install&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧪 Testable out-of-the-box&lt;/td&gt;
&lt;td&gt;✅ Pytest-ready&lt;/td&gt;
&lt;td&gt;⚠️ Complex&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🛠️ Config via .env or inline&lt;/td&gt;
&lt;td&gt;✅ Simple&lt;/td&gt;
&lt;td&gt;⚠️ Complex&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📦 Install &amp;amp; Run in &amp;lt;1 Min&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;scrapesome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Playwright Setup
&lt;/h2&gt;

&lt;p&gt;ScrapeSome uses Playwright for JavaScript rendering fallback. To enable this, you need to install Playwright and its dependencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Install Playwright Python package if not installed
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;playwright
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Install Playwright browsers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;playwright &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Install system dependencies
&lt;/h3&gt;

&lt;p&gt;Playwright requires some system libraries to run browsers, which vary by operating system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Windows&lt;/strong&gt;&lt;br&gt;
Playwright installs everything you need automatically with playwright install, so no additional setup is usually required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Linux (Ubuntu/Debian)&lt;/strong&gt;&lt;br&gt;
Run the following command to install required system libraries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;playwright install-deps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don't have playwright CLI available, you can install dependencies manually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; libwoff1 libopus0 libwebp6 libharfbuzz-icu0 libwebpmux3 &lt;span class="se"&gt;\&lt;/span&gt;
                        libenchant-2-2 libhyphen0 libegl1 libglx0 libgudev-1.0-0 &lt;span class="se"&gt;\&lt;/span&gt;
                        libevdev2 libgles2 libx264-160
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: Package names may vary depending on your distribution and version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For macOS&lt;/strong&gt;&lt;br&gt;
You can install required libraries using Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;harfbuzz enchant
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this setup, you should be able to use ScrapeSome with full Playwright rendering support!&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ Quick Start
&lt;/h2&gt;

&lt;p&gt;Synchronous Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scrapesome&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sync_scraper&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sync_scraper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Asynchronous Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scrapesome&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;async_scraper&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;async_scraper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🖥️ CLI Usage
&lt;/h2&gt;

&lt;p&gt;ScrapeSome also includes a powerful CLI for quick and easy scraping from the command line.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Installation with CLI Support
&lt;/h3&gt;

&lt;p&gt;To use the CLI, install with the optional &lt;code&gt;cli&lt;/code&gt; extras:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;scrapesome[cli]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔧 Basic Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This performs a synchronous scrape and outputs plain text by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Available Options
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--async-mode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use asynchronous scraping&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--force-playwright&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force JavaScript rendering using Playwright&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--output-format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Choose &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;json&lt;/code&gt;, &lt;code&gt;markdown&lt;/code&gt;, or &lt;code&gt;html&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;html&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Basic scrape
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Force Playwright rendering
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--force-playwright&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Get JSON output
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--output-format&lt;/span&gt; json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Async scrape with markdown output
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--async-mode&lt;/span&gt; &lt;span class="nt"&gt;--output-format&lt;/span&gt; markdown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧪 Try it out on PyPI:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://pypi.org/project/scrapesome/" rel="noopener noreferrer"&gt;https://pypi.org/project/scrapesome/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔧 GitHub: &lt;a href="https://github.com/scrapesome/scrapesome" rel="noopener noreferrer"&gt;github.com/scrapesome/scrapesome&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📚 Docs: &lt;a href="https://scrapesome.github.io/scrapesome/" rel="noopener noreferrer"&gt;scrapesome.github.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🙌 Feedback Welcome
&lt;/h2&gt;

&lt;p&gt;This is an early release, and I’d love to hear your thoughts.&lt;br&gt;&lt;br&gt;
Try it, break it, file issues, suggest features — or just ⭐ the repo if you like the idea!&lt;/p&gt;

&lt;p&gt;Happy scraping! 🕷️&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>python</category>
      <category>playwright</category>
      <category>devtools</category>
    </item>
    <item>
      <title>ScrapeSome: Effortless Web Scraping for JavaScript Heavy Sites — The Developer Friendly Scraper That Just Works</title>
      <dc:creator>VISHNU VARDHAN REDDY</dc:creator>
      <pubDate>Mon, 02 Jun 2025 06:56:50 +0000</pubDate>
      <link>https://forem.com/vishnuvardhanreddy/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-the-developer-friendly-scraper-216g</link>
      <guid>https://forem.com/vishnuvardhanreddy/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-the-developer-friendly-scraper-216g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tired of 403s and blank pages when scraping JavaScript-heavy websites?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
You're not alone — and that's exactly why I built &lt;strong&gt;ScrapeSome&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🚀 What Is ScrapeSome?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ScrapeSome&lt;/strong&gt; is a developer-friendly Python library that makes scraping modern websites simple — even the ones loaded with dynamic JavaScript or tough anti-bot protections.&lt;/p&gt;

&lt;p&gt;It’s fast, lightweight, and requires &lt;em&gt;zero&lt;/em&gt; boilerplate.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Why I Built It
&lt;/h2&gt;

&lt;p&gt;I kept hitting walls on scraping projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pages rendered everything with JavaScript&lt;/li&gt;
&lt;li&gt;APIs were locked down or undocumented&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;requests&lt;/code&gt;/&lt;code&gt;Scrapy&lt;/code&gt; failed or got 403 error&lt;/li&gt;
&lt;li&gt;Setting up full browser automation felt too heavy for small jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;ScrapeSome&lt;/strong&gt; — to fill the gap between &lt;code&gt;requests&lt;/code&gt; and full-on headless scraping frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Why Use ScrapeSome?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Handles both static and JS-heavy pages out of the box&lt;/li&gt;
&lt;li&gt;Supports both sync and async scraping&lt;/li&gt;
&lt;li&gt;Converts raw &lt;code&gt;HTML&lt;/code&gt; into clean &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;JSON&lt;/code&gt;, or &lt;code&gt;Markdown&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Works with minimal configuration (&lt;code&gt;pip install scrapesome&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Handles &lt;code&gt;timeouts&lt;/code&gt;, &lt;code&gt;retries&lt;/code&gt;, &lt;code&gt;redirects&lt;/code&gt;, &lt;code&gt;user agents&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🚀 Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔁 Sync + Async scraping support&lt;/li&gt;
&lt;li&gt;🔄 Automatic retries and intelligent fallbacks&lt;/li&gt;
&lt;li&gt;🧪 Playwright rendering fallback for JS-heavy pages&lt;/li&gt;
&lt;li&gt;📝 Format responses as raw HTML, plain &lt;strong&gt;text&lt;/strong&gt;, &lt;strong&gt;Markdown&lt;/strong&gt;, or structured &lt;strong&gt;JSON&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;⚙️ Configurable: timeouts, redirects, user agents, and logging&lt;/li&gt;
&lt;li&gt;🧪 Test coverage with &lt;code&gt;pytest&lt;/code&gt; and &lt;code&gt;pytest-asyncio&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ⚖ Comparison with Alternatives
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;ScrapeSome ✅&lt;/th&gt;
&lt;th&gt;Scrapy&lt;/th&gt;
&lt;th&gt;Selenium/UC&lt;/th&gt;
&lt;th&gt;Playwright (Raw)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ Sync + Async Scraping&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;❌ Async only*&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 JS Rendering (Fallback)&lt;/td&gt;
&lt;td&gt;✅ Seamless&lt;/td&gt;
&lt;td&gt;❌ Plugin setup&lt;/td&gt;
&lt;td&gt;✅ Full&lt;/td&gt;
&lt;td&gt;✅ Full&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📝 Output as JSON/Markdown/HTML&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;❌ Requires custom&lt;/td&gt;
&lt;td&gt;❌ Manual parsing&lt;/td&gt;
&lt;td&gt;❌ Manual parsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔁 Retry &amp;amp; Timeout Handling&lt;/td&gt;
&lt;td&gt;✅ Built-in&lt;/td&gt;
&lt;td&gt;⚠️ Requires config&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚡ Minimal Setup (Boilerplate)&lt;/td&gt;
&lt;td&gt;✅ Near zero&lt;/td&gt;
&lt;td&gt;❌ Needs project&lt;/td&gt;
&lt;td&gt;❌ Driver setup&lt;/td&gt;
&lt;td&gt;❌ Browser install&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧪 Testable out-of-the-box&lt;/td&gt;
&lt;td&gt;✅ Pytest-ready&lt;/td&gt;
&lt;td&gt;⚠️ Complex&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🛠️ Config via .env or inline&lt;/td&gt;
&lt;td&gt;✅ Simple&lt;/td&gt;
&lt;td&gt;⚠️ Complex&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📦 Install &amp;amp; Run in &amp;lt;1 Min&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;scrapesome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Playwright Setup
&lt;/h2&gt;

&lt;p&gt;ScrapeSome uses Playwright for JavaScript rendering fallback. To enable this, you need to install Playwright and its dependencies.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Install Playwright Python package if not installed
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;playwright
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Install Playwright browsers
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;playwright &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Install system dependencies
&lt;/h3&gt;

&lt;p&gt;Playwright requires some system libraries to run browsers, which vary by operating system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Windows&lt;/strong&gt;&lt;br&gt;
Playwright installs everything you need automatically with playwright install, so no additional setup is usually required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Linux (Ubuntu/Debian)&lt;/strong&gt;&lt;br&gt;
Run the following command to install required system libraries:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;playwright install-deps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don't have playwright CLI available, you can install dependencies manually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; libwoff1 libopus0 libwebp6 libharfbuzz-icu0 libwebpmux3 &lt;span class="se"&gt;\&lt;/span&gt;
                        libenchant-2-2 libhyphen0 libegl1 libglx0 libgudev-1.0-0 &lt;span class="se"&gt;\&lt;/span&gt;
                        libevdev2 libgles2 libx264-160
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: Package names may vary depending on your distribution and version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For macOS&lt;/strong&gt;&lt;br&gt;
You can install required libraries using Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;harfbuzz enchant
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this setup, you should be able to use ScrapeSome with full Playwright rendering support!&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚡ Quick Start
&lt;/h2&gt;

&lt;p&gt;Synchronous Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scrapesome&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sync_scraper&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sync_scraper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Asynchronous Example&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scrapesome&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;async_scraper&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;asyncio&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;async_scraper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🖥️ CLI Usage
&lt;/h2&gt;

&lt;p&gt;ScrapeSome also includes a powerful CLI for quick and easy scraping from the command line.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Installation with CLI Support
&lt;/h3&gt;

&lt;p&gt;To use the CLI, install with the optional &lt;code&gt;cli&lt;/code&gt; extras:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;scrapesome[cli]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔧 Basic Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This performs a synchronous scrape and outputs plain text by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚙️ Available Options
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--async-mode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Use asynchronous scraping&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--force-playwright&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Force JavaScript rendering using Playwright&lt;/td&gt;
&lt;td&gt;False&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--output-format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Choose &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;json&lt;/code&gt;, &lt;code&gt;markdown&lt;/code&gt;, or &lt;code&gt;html&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;html&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Examples
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Basic scrape
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Force Playwright rendering
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--force-playwright&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Get JSON output
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--output-format&lt;/span&gt; json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Async scrape with markdown output
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--async-mode&lt;/span&gt; &lt;span class="nt"&gt;--output-format&lt;/span&gt; markdown
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧪 Try it out on PyPI:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://pypi.org/project/scrapesome/" rel="noopener noreferrer"&gt;https://pypi.org/project/scrapesome/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔧 GitHub: &lt;a href="https://github.com/scrapesome/scrapesome" rel="noopener noreferrer"&gt;github.com/scrapesome/scrapesome&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📚 Docs: &lt;a href="https://scrapesome.onrender.com" rel="noopener noreferrer"&gt;scrapesome.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 Full blog post: &lt;a href="https://vishnuvardhanreddy-vvr.medium.com/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-the-developer-friendly-scraper-e2ab72a5717a" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🙌 Feedback Welcome
&lt;/h2&gt;

&lt;p&gt;This is an early release, and I’d love to hear your thoughts.&lt;br&gt;&lt;br&gt;
Try it, break it, file issues, suggest features — or just ⭐ the repo if you like the idea!&lt;/p&gt;

&lt;p&gt;Happy scraping! 🕷️&lt;br&gt;&lt;br&gt;
— Vishnu&lt;/p&gt;

</description>
      <category>python</category>
      <category>playwright</category>
      <category>403</category>
      <category>opensource</category>
    </item>
    <item>
      <title>ScrapeSome: Effortless Web Scraping for JavaScript-Heavy Sites</title>
      <dc:creator>VISHNU VARDHAN REDDY</dc:creator>
      <pubDate>Mon, 02 Jun 2025 06:47:41 +0000</pubDate>
      <link>https://forem.com/vishnuvardhanreddy/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-4po1</link>
      <guid>https://forem.com/vishnuvardhanreddy/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-4po1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4dms2p17mgq4p30n54l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4dms2p17mgq4p30n54l.png" alt="Image description" width="392" height="284"&gt;&lt;/a&gt;&amp;gt; &lt;br&gt;
&lt;strong&gt;Tired of 403s and blank pages when scraping JavaScript-heavy websites?&lt;/strong&gt;  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You're not alone — and that's exactly why I built &lt;strong&gt;ScrapeSome&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🚀 What Is ScrapeSome?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ScrapeSome&lt;/strong&gt; is a developer-friendly Python library that makes scraping modern websites simple — even the ones loaded with dynamic JavaScript or tough anti-bot protections.&lt;/p&gt;

&lt;p&gt;It combines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Sync and async support&lt;/li&gt;
&lt;li&gt;🎭 Automatic Playwright fallback for headless browser rendering&lt;/li&gt;
&lt;li&gt;💻 CLI support: scrape straight from your terminal&lt;/li&gt;
&lt;li&gt;🛡️ Built-in error handling, timeouts, and retries&lt;/li&gt;
&lt;li&gt;📄 Output formats: &lt;code&gt;HTML&lt;/code&gt;, &lt;code&gt;Markdown&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, or &lt;code&gt;JSON&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s fast, lightweight, and requires &lt;em&gt;zero&lt;/em&gt; boilerplate.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Why I Built It
&lt;/h2&gt;

&lt;p&gt;I kept hitting walls on scraping projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pages rendered everything with JavaScript&lt;/li&gt;
&lt;li&gt;APIs were locked down or undocumented&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;requests&lt;/code&gt;,&lt;code&gt;Scrapy&lt;/code&gt; failed or got 403 request error&lt;/li&gt;
&lt;li&gt;Setting up full browser automation felt too heavy for small jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built &lt;strong&gt;ScrapeSome&lt;/strong&gt; — to fill the gap between &lt;code&gt;requests&lt;/code&gt; and full-on headless scraping frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Quick Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;scrapesome&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sync_scraper&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sync_scraper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sync_scraper&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://example.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;force_playwright&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;output_format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;markdown&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;user_agents&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Mozilla/5.0&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  💻 CLI usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;scrapesome scrape &lt;span class="nt"&gt;--url&lt;/span&gt; https://example.com &lt;span class="nt"&gt;--output-format&lt;/span&gt; json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can even configure behavior with environment variables — great for scripting.&lt;/p&gt;

&lt;h2&gt;
  
  
  📦 Install It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;scrapesome
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🧪 Try it out on PyPI:&lt;br&gt;&lt;br&gt;
👉 &lt;a href="https://pypi.org/project/scrapesome/" rel="noopener noreferrer"&gt;https://pypi.org/project/scrapesome/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🔧 GitHub: &lt;a href="https://github.com/scrapesome/scrapesome" rel="noopener noreferrer"&gt;github.com/scrapesome/scrapesome&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📚 Docs: &lt;a href="https://scrapesome.onrender.com" rel="noopener noreferrer"&gt;scrapesome.onrender.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 Full blog post: &lt;a href="https://vishnuvardhanreddy-vvr.medium.com/scrapesome-effortless-web-scraping-for-javascript-heavy-sites-the-developer-friendly-scraper-e2ab72a5717a" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🙌 Feedback Welcome
&lt;/h2&gt;

&lt;p&gt;This is an early release, and I’d love to hear your thoughts.&lt;br&gt;&lt;br&gt;
Try it, break it, file issues, suggest features — or just ⭐ the repo if you like the idea!&lt;/p&gt;

&lt;p&gt;Happy scraping! 🕷️&lt;br&gt;&lt;br&gt;
— Vishnu Vardhan Reddy&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
