تمرین برنامه نویسی؛ با کدبزن!

منبع جامع سوالات و تمرینات برنامه نویسی

استخراج محصولات از سایت

تمرین آسان 366 بازدید 1816/ دانلود

برنامه‌ای بنویسید که اطلاعات فایل html زیر را دریافت کند و در یک فایل Excel ذخیره کند.

دریافت عنوان محصول، قیمت، و لینک محصول
ذخیره اطلاعات در Excel
نمایش محصولات به ترتیب قیمت از کم به زیاد


<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8">
<title>فروشگاه تستی</title>
</head>
<body>
<div class="product">
<span class="title">لپ‌تاپ ایسوس مدل X515</span>
<span class="price">25,000,000 تومان</span>
<a class="link" href="https://example.com/laptop-x515">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">گوشی سامسونگ Galaxy A54</span>
<span class="price">15,500,000 تومان</span>
<a class="link" href="https://example.com/galaxy-a54">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">هدفون بی‌سیم Sony WH-1000XM4</span>
<span class="price">9,200,000 تومان</span>
<a class="link" href="https://example.com/sony-wh1000xm4">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">مانیتور ال‌جی مدل 24MP400</span>
<span class="price">6,500,000 تومان</span>
<a class="link" href="https://example.com/lg-24mp400">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">کنسول بازی PlayStation 5</span>
<span class="price">32,000,000 تومان</span>
<a class="link" href="https://example.com/ps5">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">موس گیمینگ Logitech G Pro X</span>
<span class="price">4,800,000 تومان</span>
<a class="link" href="https://example.com/logitech-gpro">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">کیبورد مکانیکی Razer BlackWidow V3</span>
<span class="price">7,300,000 تومان</span>
<a class="link" href="https://example.com/razer-bw-v3">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">ساعت هوشمند Apple Watch Series 8</span>
<span class="price">18,000,000 تومان</span>
<a class="link" href="https://example.com/apple-watch8">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">دوربین دیجیتال Canon EOS 250D</span>
<span class="price">22,500,000 تومان</span>
<a class="link" href="https://example.com/canon-eos250d">مشاهده محصول</a>
</div>
<div class="product">
<span class="title">هارد اکسترنال WD My Passport 2TB</span>
<span class="price">3,200,000 تومان</span>
<a class="link" href="https://example.com/wd-2tb">مشاهده محصول</a>
</div>
</body>
</html>

👨‍💻 7 ساعت قبل کاربر ناشناس این تمرین رو مشاهده کرد

1 جواب

مرتب سازی

برای انجام این کار، می‌توانید از کتابخانه‌های BeautifulSoup برای استخراج اطلاعات از HTML و pandas برای ذخیره‌سازی در فایل Excel استفاده کنید. در زیر کد مربوطه را مشاهده می‌کنید:

import pandas as pd
from bs4 import BeautifulSoup

html_content = """
<!DOCTYPE html>
<html lang="fa">
<head>
    <meta charset="UTF-8">
    <title>فروشگاه تستی</title>
</head>
<body>
    <div class="product">
        <span class="title">لپ‌تاپ ایسوس مدل X515</span>
        <span class="price">25,000,000 تومان</span>
        <a class="link" href="https://example.com/laptop-x515">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">گوشی سامسونگ Galaxy A54</span>
        <span class="price">15,500,000 تومان</span>
        <a class="link" href="https://example.com/galaxy-a54">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">هدفون بی‌سیم Sony WH-1000XM4</span>
        <span class="price">9,200,000 تومان</span>
        <a class="link" href="https://example.com/sony-wh1000xm4">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">مانیتور ال‌جی مدل 24MP400</span>
        <span class="price">6,500,000 تومان</span>
        <a class="link" href="https://example.com/lg-24mp400">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">کنسول بازی PlayStation 5</span>
        <span class="price">32,000,000 تومان</span>
        <a class="link" href="https://example.com/ps5">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">موس گیمینگ Logitech G Pro X</span>
        <span class="price">4,800,000 تومان</span>
        <a class="link" href="https://example.com/logitech-gpro">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">کیبورد مکانیکی Razer BlackWidow V3</span>
        <span class="price">7,300,000 تومان</span>
        <a class="link" href="https://example.com/razer-bw-v3">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">ساعت هوشمند Apple Watch Series 8</span>
        <span class="price">18,000,000 تومان</span>
        <a class="link" href="https://example.com/apple-watch8">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">دوربین دیجیتال Canon EOS 250D</span>
        <span class="price">22,500,000 تومان</span>
        <a class="link" href="https://example.com/canon-eos250d">مشاهده محصول</a>
    </div>
    <div class="product">
        <span class="title">هارد اکسترنال WD My Passport 2TB</span>
        <span class="price">3,200,000 تومان</span>
        <a class="link" href="https://example.com/wd-2tb">مشاهده محصول</a>
    </div>
</body>
</html>
"""

soup = BeautifulSoup(html_content, 'html.parser')
products = []

for product in soup.find_all(class_='product'):
    title = product.find(class_='title').text
    price = int(product.find(class_='price').text.replace(',', '').replace(' تومان', ''))
    link = product.find(class_='link')['href']
    products.append({'Title': title, 'Price': price, 'Link': link})

# Sort products by price
products.sort(key=lambda x: x['Price'])

# Create DataFrame and save to Excel
df = pd.DataFrame(products)
df.to_excel('products.xlsx', index=False)

این کد اطلاعات محصولات را از HTML استخراج کرده و آن‌ها را در یک فایل Excel به نام products.xlsx ذخیره می‌کند. محصولات به ترتیب قیمت از کم به زیاد مرتب شده‌اند.

ارسال جواب

  • قبل از ارسال جواب ویدیو زیر رو ببین تا کار کردن با markdown رو یاد بگیری
  • لطفا جواب های تکراری ارسال نکن
  • در متن جواب اطلاعات شخصی شامل ایمیل و شماره موبایل و آی دی و... ننویس
  • سعی کن داخل کدت از کلمات فارسی یا فینگلیش (فارسی با حروف انگلیسی) استفاده نکنی و کدت تماما انگلیسی باشه
  • لطفا داخل جواب از ایموجی یا کاراکترهای خاص استفاده نکن
  • ارسال جواب حق مادی یا معنوی برای ارسال کننده ایجاد نمیکند و تمام حقوق برای سایت کدبزن محفوظ است

راهنمای ارسال جواب 👇

×
بستن