نحوه اسکرپ کردن کمیک‌های xkcd: راهنمای API و استخراج وب

بیاموزید چگونه متاداده‌ها، رونوشت‌ها و URL تصاویر کمیک xkcd را استخراج کنید. از API رسمی JSON یا پایتون برای تحقیقات NLP و آرشیو آفلاین استفاده کنید.

xkcd favicon
xkcd.comآسان
پوشش:Global
داده‌های موجود6 فیلد
عنوانتوضیحاتتصاویراطلاعات فروشندهتاریخ انتشارویژگی‌ها
تمام فیلدهای قابل استخراج
شماره کمیکعنوان کمیکURL تصویرمتن جایگزین (پانچ‌لاین)رونوشت متنیسال انتشارماه انتشارروز انتشارلینک دائمیفیلد اخبار/متاداده
الزامات فنی
HTML ایستا
بدون نیاز به ورود
دارای صفحه‌بندی
API رسمی موجود

درباره xkcd

کشف کنید xkcd چه چیزی ارائه می‌دهد و چه داده‌های ارزشمندی می‌توان استخراج کرد.

دنیای xkcd

xkcd که توسط رندال مونرو خلق شده است، یک وب‌کمیک افسانه‌ای با تمرکز بر موضوعات عاشقانه، کنایه، ریاضیات و زبان است. از زمان راه‌اندازی در سال ۲۰۰۵، این سایت به یکی از ستون‌های فرهنگ اینترنت تبدیل شده و به خاطر نقاشی‌های آدمک خطی و طنز عمیقاً روشنفکرانه در زمینه علم و فناوری شناخته می‌شود.

داده‌های قابل استخراج

این وب‌سایت دسترسی به بیش از ۲۸۰۰ کمیک را فراهم می‌کند. هر ورودی شامل یک شماره کمیک منحصربه‌فرد، عنوان، URL تصویر (وابسته به پروتکل) و «alt-text» معروف (موجود در اتریبیوت عنوان تصویر) است که اغلب حاوی پانچ‌لاین نهایی است. اکثر کمیک‌ها همچنین شامل یک رونوشت متنی دقیق هستند.

چرا محققان xkcd را اسکرپ می‌کنند

استخراج این داده‌ها برای پردازش زبان طبیعی (NLP) و تحلیل احساسات طنزهای فنی بسیار ارزشمند است. رونوشت‌ها مجموعه‌داده‌ای تمیز از توصیف‌های انسانی را ارائه می‌دهند، در حالی که شماره‌گذاری ترتیبی، آن را به هدفی ایده‌آل برای تمرین خزش وب و اتوماسیون آرشیوسازی تبدیل می‌کند.

درباره xkcd

چرا xkcd را اسکرپ کنیم؟

ارزش تجاری و موارد استفاده برای استخراج داده از xkcd را کشف کنید.

ایجاد یک آرشیو آفلاین جامع از تمامی وب‌کمیک‌های علمی.

انجام تحلیل احساسات روی دو دهه از فرهنگ اینترنت.

آموزش مدل‌های یادگیری ماشین بر روی توصیف‌های تصویر-به-متن.

ساخت یک ایندکس سفارشی و قابل جستجو از رونوشت‌های کمیک برای مراجع دانشگاهی.

تحلیل روندهای تاریخی در تکنولوژی و برنامه‌نویسی از طریق دریچه طنز.

توسعه یک موتور پیشنهاددهنده اختصاصی با عنوان «xkcd مرتبط».

چالش‌های اسکرپینگ

چالش‌های فنی که ممکن است هنگام اسکرپ xkcd با آنها مواجه شوید.

مدیریت URLهای وابسته به پروتکل (مانند //imgs.xkcd.com/) در ورودی‌های قدیمی‌تر.

پارس کردن فرمت‌بندی‌های ناهماهنگ در رونوشت‌های کمیک‌های منتشر شده قبل از سال ۲۰۱۰.

مدیریت حجم کل ذخیره‌سازی هنگام دانلود دارایی‌های تصویری با رزولوشن بالا.

هندل کردن هوشمندانه کمیک‌های «بزرگ» مانند شماره ۱۱۱۰ (Click and Drag) که از تصاویر تایل‌بندی شده استفاده می‌کنند.

استخراج داده از xkcd با هوش مصنوعی

بدون نیاز به کدنویسی. با اتوماسیون مبتنی بر هوش مصنوعی در چند دقیقه داده استخراج کنید.

نحوه عملکرد

1

نیاز خود را توصیف کنید

به هوش مصنوعی بگویید چه داده‌هایی را می‌خواهید از xkcd استخراج کنید. فقط به زبان طبیعی بنویسید — بدون نیاز به کد یا سلکتور.

2

هوش مصنوعی داده‌ها را استخراج می‌کند

هوش مصنوعی ما xkcd را مرور می‌کند، محتوای پویا را مدیریت می‌کند و دقیقاً آنچه درخواست کرده‌اید را استخراج می‌کند.

3

داده‌های خود را دریافت کنید

داده‌های تمیز و ساختاریافته آماده برای صادرات به CSV، JSON یا ارسال مستقیم به برنامه‌های شما دریافت کنید.

چرا از هوش مصنوعی برای استخراج داده استفاده کنید

رابط کاربری بدون کد (No-code) به افراد غیربرنامه‌نویس اجازه می‌دهد کل آرشیو را در چند دقیقه استخراج کنند.
مدیریت خودکار صفحه‌بندی ترتیبی از طریق ساختار URL شناسه کمیک.
اجرای زمان‌بندی شده برای شناسایی و اسکرپ کردن کمیک‌های جدید در روزهای دوشنبه، چهارشنبه و جمعه.
خروجی مستقیم از ابر به دیتابیس، نیاز به مدیریت فضای ذخیره‌سازی محلی را از بین می‌برد.
بدون نیاز به کارت اعتباریطرح رایگان موجودبدون نیاز به راه‌اندازی

هوش مصنوعی استخراج داده از xkcd را بدون نوشتن کد آسان می‌کند. پلتفرم ما با هوش مصنوعی می‌فهمد چه داده‌هایی می‌خواهید — فقط به زبان طبیعی توصیف کنید و هوش مصنوعی به طور خودکار استخراج می‌کند.

How to scrape with AI:
  1. نیاز خود را توصیف کنید: به هوش مصنوعی بگویید چه داده‌هایی را می‌خواهید از xkcd استخراج کنید. فقط به زبان طبیعی بنویسید — بدون نیاز به کد یا سلکتور.
  2. هوش مصنوعی داده‌ها را استخراج می‌کند: هوش مصنوعی ما xkcd را مرور می‌کند، محتوای پویا را مدیریت می‌کند و دقیقاً آنچه درخواست کرده‌اید را استخراج می‌کند.
  3. داده‌های خود را دریافت کنید: داده‌های تمیز و ساختاریافته آماده برای صادرات به CSV، JSON یا ارسال مستقیم به برنامه‌های شما دریافت کنید.
Why use AI for scraping:
  • رابط کاربری بدون کد (No-code) به افراد غیربرنامه‌نویس اجازه می‌دهد کل آرشیو را در چند دقیقه استخراج کنند.
  • مدیریت خودکار صفحه‌بندی ترتیبی از طریق ساختار URL شناسه کمیک.
  • اجرای زمان‌بندی شده برای شناسایی و اسکرپ کردن کمیک‌های جدید در روزهای دوشنبه، چهارشنبه و جمعه.
  • خروجی مستقیم از ابر به دیتابیس، نیاز به مدیریت فضای ذخیره‌سازی محلی را از بین می‌برد.

اسکرپرهای وب بدون کد برای xkcd

جایگزین‌های کلیک و انتخاب برای اسکرپینگ مبتنی بر AI

چندین ابزار بدون کد مانند Browse.ai، Octoparse، Axiom و ParseHub می‌توانند به شما در اسکرپ xkcd بدون نوشتن کد کمک کنند. این ابزارها معمولاً از رابط‌های بصری برای انتخاب داده استفاده می‌کنند، اگرچه ممکن است با محتوای پویای پیچیده یا اقدامات ضد ربات مشکل داشته باشند.

گردش کار معمول با ابزارهای بدون کد

1
افزونه مرورگر را نصب کنید یا در پلتفرم ثبت‌نام کنید
2
به وب‌سایت هدف بروید و ابزار را باز کنید
3
عناصر داده‌ای مورد نظر را با کلیک انتخاب کنید
4
انتخابگرهای CSS را برای هر فیلد داده پیکربندی کنید
5
قوانین صفحه‌بندی را برای استخراج چندین صفحه تنظیم کنید
6
CAPTCHA را مدیریت کنید (اغلب نیاز به حل دستی دارد)
7
زمان‌بندی اجرای خودکار را پیکربندی کنید
8
داده‌ها را به CSV، JSON صادر کنید یا از طریق API متصل شوید

چالش‌های رایج

منحنی یادگیری

درک انتخابگرها و منطق استخراج زمان می‌برد

انتخابگرها خراب می‌شوند

تغییرات وب‌سایت می‌تواند کل جریان کار را خراب کند

مشکلات محتوای پویا

سایت‌های پر از JavaScript نیاز به راه‌حل‌های پیچیده دارند

محدودیت‌های CAPTCHA

اکثر ابزارها نیاز به مداخله دستی برای CAPTCHA دارند

مسدود شدن IP

استخراج تهاجمی می‌تواند منجر به مسدود شدن IP شما شود

اسکرپرهای وب بدون کد برای xkcd

چندین ابزار بدون کد مانند Browse.ai، Octoparse، Axiom و ParseHub می‌توانند به شما در اسکرپ xkcd بدون نوشتن کد کمک کنند. این ابزارها معمولاً از رابط‌های بصری برای انتخاب داده استفاده می‌کنند، اگرچه ممکن است با محتوای پویای پیچیده یا اقدامات ضد ربات مشکل داشته باشند.

گردش کار معمول با ابزارهای بدون کد
  1. افزونه مرورگر را نصب کنید یا در پلتفرم ثبت‌نام کنید
  2. به وب‌سایت هدف بروید و ابزار را باز کنید
  3. عناصر داده‌ای مورد نظر را با کلیک انتخاب کنید
  4. انتخابگرهای CSS را برای هر فیلد داده پیکربندی کنید
  5. قوانین صفحه‌بندی را برای استخراج چندین صفحه تنظیم کنید
  6. CAPTCHA را مدیریت کنید (اغلب نیاز به حل دستی دارد)
  7. زمان‌بندی اجرای خودکار را پیکربندی کنید
  8. داده‌ها را به CSV، JSON صادر کنید یا از طریق API متصل شوید
چالش‌های رایج
  • منحنی یادگیری: درک انتخابگرها و منطق استخراج زمان می‌برد
  • انتخابگرها خراب می‌شوند: تغییرات وب‌سایت می‌تواند کل جریان کار را خراب کند
  • مشکلات محتوای پویا: سایت‌های پر از JavaScript نیاز به راه‌حل‌های پیچیده دارند
  • محدودیت‌های CAPTCHA: اکثر ابزارها نیاز به مداخله دستی برای CAPTCHA دارند
  • مسدود شدن IP: استخراج تهاجمی می‌تواند منجر به مسدود شدن IP شما شود

نمونه کدها

import requests
from bs4 import BeautifulSoup

def scrape_xkcd_page(comic_id):
    url = f'https://xkcd.com/{comic_id}/'
    headers = {'User-Agent': 'ScrapingGuideBot/1.0'}
    
    # Send request to the comic page
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # Extract the title and image metadata
        comic_div = soup.find(id='comic')
        img = comic_div.find('img')
        
        data = {
            'title': soup.find(id='ctitle').text,
            'img_url': 'https:' + img['src'],
            'alt_text': img['title']
        }
        return data

# Example: Scrape comic #1000
print(scrape_xkcd_page(1000))

زمان استفاده

بهترین گزینه برای صفحات HTML ایستا که محتوا در سمت سرور بارگذاری می‌شود. سریع‌ترین و ساده‌ترین روش وقتی رندر JavaScript لازم نیست.

مزایا

  • سریع‌ترین اجرا (بدون سربار مرورگر)
  • کمترین مصرف منابع
  • به راحتی با asyncio قابل موازی‌سازی
  • عالی برای API و صفحات ایستا

محدودیت‌ها

  • قادر به اجرای JavaScript نیست
  • در SPA و محتوای پویا ناموفق است
  • ممکن است با سیستم‌های ضد ربات پیچیده مشکل داشته باشد

How to Scrape xkcd with Code

Python + Requests
import requests
from bs4 import BeautifulSoup

def scrape_xkcd_page(comic_id):
    url = f'https://xkcd.com/{comic_id}/'
    headers = {'User-Agent': 'ScrapingGuideBot/1.0'}
    
    # Send request to the comic page
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # Extract the title and image metadata
        comic_div = soup.find(id='comic')
        img = comic_div.find('img')
        
        data = {
            'title': soup.find(id='ctitle').text,
            'img_url': 'https:' + img['src'],
            'alt_text': img['title']
        }
        return data

# Example: Scrape comic #1000
print(scrape_xkcd_page(1000))
Python + Playwright
from playwright.sync_api import sync_playwright

def scrape_with_playwright(comic_id):
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        page = browser.new_page()
        page.goto(f'https://xkcd.com/{comic_id}/')
        
        # Wait for the comic element to load
        page.wait_for_selector('#comic img')
        
        title = page.inner_text('#ctitle')
        img_src = page.get_attribute('#comic img', 'src')
        alt_text = page.get_attribute('#comic img', 'title')
        
        print(f'Comic {comic_id}: {title}')
        print(f'Alt Text: {alt_text}')
        
        browser.close()

scrape_with_playwright(2500)
Python + Scrapy
import scrapy

class XkcdSpider(scrapy.Spider):
    name = 'xkcd_spider'
    start_urls = ['https://xkcd.com/1/']

    def parse(self, response):
        yield {
            'num': response.url.split('/')[-2],
            'title': response.css('#ctitle::text').get(),
            'img_url': response.urljoin(response.css('#comic img::attr(src)').get()),
            'alt': response.css('#comic img::attr(title)').get()
        }

        # Follow the 'Next' button to crawl the entire archive
        next_page = response.css('a[rel="next"]::attr(href)').get()
        if next_page and next_page != '#':
            yield response.follow(next_page, self.parse)
Node.js + Puppeteer
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://xkcd.com/614/');

  const comicData = await page.evaluate(() => {
    const img = document.querySelector('#comic img');
    return {
      title: document.querySelector('#ctitle').innerText,
      imgUrl: img.src,
      altText: img.title
    };
  });

  console.log(comicData);
  await browser.close();
})();

با داده‌های xkcd چه کارهایی می‌توانید انجام دهید

کاربردهای عملی و بینش‌ها از داده‌های xkcd را بررسی کنید.

تحلیل احساسات در NLP

محققان می‌توانند متن هزاران کمیک را تحلیل کنند تا ببینند لحن طنز فنی طی دهه‌ها چگونه تکامل یافته است.

نحوه پیاده‌سازی:

  1. 1استخراج رونوشت‌ها و alt-text با استفاده از API مبتنی بر JSON.
  2. 2توکن‌بندی (tokenize) متن و حذف کلمات توقف استاندارد.
  3. 3اعمال یک تحلیل‌گر احساسات مانند VADER یا TextBlob.
  4. 4تجسم روند احساسات نسبت به سال‌های انتشار کمیک.

از Automatio برای استخراج داده از xkcd و ساخت این برنامه‌ها بدون نوشتن کد استفاده کنید.

با داده‌های xkcd چه کارهایی می‌توانید انجام دهید

  • تحلیل احساسات در NLP

    محققان می‌توانند متن هزاران کمیک را تحلیل کنند تا ببینند لحن طنز فنی طی دهه‌ها چگونه تکامل یافته است.

    1. استخراج رونوشت‌ها و alt-text با استفاده از API مبتنی بر JSON.
    2. توکن‌بندی (tokenize) متن و حذف کلمات توقف استاندارد.
    3. اعمال یک تحلیل‌گر احساسات مانند VADER یا TextBlob.
    4. تجسم روند احساسات نسبت به سال‌های انتشار کمیک.
  • استخراج کلمات کلیدی فنی

    ایجاد دیتابیسی از اصطلاحات فنی که مکرراً در فرهنگ عامه استفاده می‌شوند برای شناسایی ترندهای نوظهور تکنولوژی.

    1. اسکرپ کردن تمامی عناوین و رونوشت‌های کمیک.
    2. شناسایی کلمات کلیدی علمی و فنی با استفاده از یک مدل NER.
    3. محاسبه فراوانی و تراکم کلمات کلیدی در دوره‌های مختلف کمیک.
    4. تطبیق این کلمات کلیدی با تاریخ انتشار فناوری‌های دنیای واقعی (مانند پایتون ۳ یا SpaceX).
  • اپلیکیشن مرورگر کمیک آفلاین

    توسعه‌دهندگان می‌توانند اپلیکیشن‌های موبایل‌پسند و آفلاین برای طرفداران بسازند تا بدون اتصال به اینترنت کمیک‌ها را بخوانند.

    1. اسکرپ کردن تمامی URLهای تصویر و متاداده‌های مرتبط.
    2. دانلود تصاویر و فشرده‌سازی آن‌ها برای عملکرد بهتر در موبایل.
    3. ایجاد یک دیتابیس محلی SQLite شامل عناوین، شماره‌ها و alt-text.
    4. ساخت یک رابط کاربری که با نگه داشتن انگشت یا کلیک، alt-text را نمایش دهد.
  • آموزش شرح تصویر با AI

    استفاده از alt-text و رونوشت‌های بسیار توصیفی به عنوان مجموعه‌داده برای آموزش مدل‌های یادگیری ماشین جهت توصیف صحنه‌های پیچیده.

    1. دانلود تصاویر کمیک و رونوشت‌های مربوطه.
    2. پاکسازی داده‌ها برای حذف طنزهای غیرتوصیفی از رونوشت‌ها.
    3. استفاده از جفت‌های تصویر-متن برای fine-tuning یک مدل multimodal LLM.
    4. ارزیابی توانایی مدل در تولید طنز یا توصیفات فنی.
بیشتر از فقط پرامپت

گردش کار خود را با اتوماسیون AI

Automatio قدرت عامل‌های AI، اتوماسیون وب و ادغام‌های هوشمند را ترکیب می‌کند تا به شما کمک کند در زمان کمتر بیشتر انجام دهید.

عامل‌های AI
اتوماسیون وب
گردش‌کارهای هوشمند

نکات حرفه‌ای برای اسکرپ xkcd

توصیه‌های تخصصی برای استخراج موفق داده از xkcd.

همیشه ابتدا API رسمی JSON را در آدرس https

//xkcd.com/info.0.json بررسی کنید؛ این روش بسیار سریع‌تر از پارس کردن HTML است.

هنگام استخراج تصاویر، حتماً «

https» را به اتریبیوت src اضافه کنید، زیرا xkcd اغلب از مسیرهای وابسته به پروتکل (//imgs.xkcd.com) استفاده می‌کند.

با محدود کردن درخواست‌های خود به ۱-۲ مورد در ثانیه به سرور احترام بگذارید؛ xkcd بسیار منعطف است اما ارسال حجم بالایی از درخواست‌ها در لحظه غیرضروری است.

از «Link Permanent» که در پایین هر صفحه قرار دارد استفاده کنید تا در صورت تغییر ساختار سایت، لینک‌های دیتابیس شما از کار نیفتند.

اگر به توضیحات عمیق‌تری درباره شوخی‌ها نیاز دارید، می‌توانید از ویکی جامعه کاربری «Explain xkcd» به عنوان مرجع کمکی استفاده کنید.

شناسه کمیک را به عنوان کلید اصلی (primary key) در دیتابیس خود ذخیره کنید تا ماهیت ترتیبی داده‌ها را به شکلی بهینه مدیریت کنید.

نظرات

کاربران ما چه می‌گویند

به هزاران کاربر راضی که گردش کار خود را متحول کرده‌اند بپیوندید

Jonathan Kogan

Jonathan Kogan

Co-Founder/CEO, rpatools.io

Automatio is one of the most used for RPA Tools both internally and externally. It saves us countless hours of work and we realized this could do the same for other startups and so we choose Automatio for most of our automation needs.

Mohammed Ibrahim

Mohammed Ibrahim

CEO, qannas.pro

I have used many tools over the past 5 years, Automatio is the Jack of All trades.. !! it could be your scraping bot in the morning and then it becomes your VA by the noon and in the evening it does your automations.. its amazing!

Ben Bressington

Ben Bressington

CTO, AiChatSolutions

Automatio is fantastic and simple to use to extract data from any website. This allowed me to replace a developer and do tasks myself as they only take a few minutes to setup and forget about it. Automatio is a game changer!

Sarah Chen

Sarah Chen

Head of Growth, ScaleUp Labs

We've tried dozens of automation tools, but Automatio stands out for its flexibility and ease of use. Our team productivity increased by 40% within the first month of adoption.

David Park

David Park

Founder, DataDriven.io

The AI-powered features in Automatio are incredible. It understands context and adapts to changes in websites automatically. No more broken scrapers!

Emily Rodriguez

Emily Rodriguez

Marketing Director, GrowthMetrics

Automatio transformed our lead generation process. What used to take our team days now happens automatically in minutes. The ROI is incredible.

Jonathan Kogan

Jonathan Kogan

Co-Founder/CEO, rpatools.io

Automatio is one of the most used for RPA Tools both internally and externally. It saves us countless hours of work and we realized this could do the same for other startups and so we choose Automatio for most of our automation needs.

Mohammed Ibrahim

Mohammed Ibrahim

CEO, qannas.pro

I have used many tools over the past 5 years, Automatio is the Jack of All trades.. !! it could be your scraping bot in the morning and then it becomes your VA by the noon and in the evening it does your automations.. its amazing!

Ben Bressington

Ben Bressington

CTO, AiChatSolutions

Automatio is fantastic and simple to use to extract data from any website. This allowed me to replace a developer and do tasks myself as they only take a few minutes to setup and forget about it. Automatio is a game changer!

Sarah Chen

Sarah Chen

Head of Growth, ScaleUp Labs

We've tried dozens of automation tools, but Automatio stands out for its flexibility and ease of use. Our team productivity increased by 40% within the first month of adoption.

David Park

David Park

Founder, DataDriven.io

The AI-powered features in Automatio are incredible. It understands context and adapts to changes in websites automatically. No more broken scrapers!

Emily Rodriguez

Emily Rodriguez

Marketing Director, GrowthMetrics

Automatio transformed our lead generation process. What used to take our team days now happens automatically in minutes. The ROI is incredible.

مرتبط Web Scraping

سوالات متداول درباره xkcd

پاسخ سوالات رایج درباره xkcd را بیابید