آموزش پیشرفته وب اسکریپینگ ــ ساخت خزنده چند سایت همزمان

مدت :

۲ ساعت و ۱۵ دقیقه

قیمت : ۹۱,۰۰۰ تومان
LinkedIn
Twitter
Facebook
Telegram

درباره مدرس 

اطلاعات دوره

توضیحات

پیش از این یک آموزش وب اسکریپینگ با پایتون مقدماتی در هم رویش منتشر شد. این بسته آموزش پیشرفته وب اسکریپینگ در ادامه تقدیم علاقه مندان می‌شود. در اینجا به آموزش وب کراولینگ و ترفندهای خزش در اینترنت می پردازیم. در پایان بسته مقدماتی به ساخت Crawler رسیدیم. در واقع در این بسته  ضمن آشنایی با ترفندهای اسکریپینگ پیشرفته مانند کتابخانه requests ، به نوعی آن آموزش Crawler با پایتون را هم تکمیل می‌کنیم.

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

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

 

چرا وب اسکریپینگ ؟

حتما تاکنون نام اپلیکیشن ترب را شنیده اید. این اپلیکیشن، از یک موتور جستجوی هوشمند تشکیل شده است که بر روی هزاران وبسایت و فروشگاه اینترنتی خزش می کند. ترب قیمت کالای مورد نظر شما از این وبسایت ها استخراج می کند.

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

در این آموزش، به صورت پروژه محور، با ترفندهای خزش (crawl) در وبسایت های مختلف آشنا می شوید. و در پایان، قادر خواهید بود برنامه ای مشابه موتور جستجوی اپلیکیشن torob بنویسید. در وبسایت های مختلف خزش کنید و اطلاعات مورد نظرتان را استخراج کنید.

اطلاعات مورد نظر شما می تواند قیمت یک کالای به خصوص باشد، امتیاز یا لینک دانلود یک فیلم در وبسایت های مختلف باشد. یا حتی تصاویر و ویدئویی هایی باشد که کاربران در شبکه های اجتماعی مختلف به اشتراک می گذارند.

پیشنیاز این آموزش، آشنایی مقدماتی با مفاهیم وب اسکریپینگ و وب کراولینگ است. اگر هیچ دانش و پیش زمینه ای در این مورد ندارید، بسته مقدماتی آموزش وب اسکرپینگ با پایتون را مشاهده نمایید.

 

این آموزش پیشرفته وب اسکریپینگ در یک نگاه

در گام اول، با بیان چند مثال متنوع، با css selector ها و دو متد کاربردی از کتابخانه BeautifulSoup آشنا می شویم: متدهای select و select_one. در کنار معرفی این دو متد، مروری بر متدهای find و findAll انجام می دهیم. با مقایسه آنها فلسفه استفاده از متدهای جدید را درک می کنیم.

در دومین گام، با کتابخانه requests در پایتون آشنا می شویم. این کتابخانه امکان ارسال درخواست به یک آدرس اینترنتی مشخص را به صورت حرفه ای و کامل برای ما فراهم می کند. کتابخانه های requests و BeautifulSoup، دو ابزار اصلی ما در طول این آموزش خواهند بود.

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

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

سپس، نحوه خزش بر روی لینک های مشخصی از وبسایت ها را فرا می گیرد. به عنوان مثال شاید بخواهیم در صفحه اول وبسایت های فروشگاهی دیجی کالا و کالاوما، فقط بر روی لینک های مربوط به محصولات خزش کنیم و از سایر لینک های موجود در آن صفحه عبور کنیم. در این گام، از عبارات باقاعده یا Regular Expression استفاده می کنیم.

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

و در پایان، به بیان جمع بندی و اهدافی که پیش رویمان قرار دارد، می پردازیم.

 

این آموزش بی نظیر است زیرا:
  • مطالب به زبانی ساده و گویا و با ذکر جزئیات، توضیحات کامل و مثال های مختلف بیان شده است. به طوری که هیچ ابهامی برای مخاطب باقی نمی ماند.
  • کاملا پروژه محور بوده و مطالب و ترفندهای بیان شده، بر روی دو وبسایت ایرانی دیجیکالا و کالاو ما پیاده سازی شده است.
  • با روشی جدید و در یک محیط جذاب تهیه شده به طوری که مخاطب گام به گام با روند کدنویسی و پیاده سازی ایده ها آشنا می شود. سرانجام خروجی هر قسمت از کد را مشاهده و تحلیل می کند.
  • روش ها و تکنیک های بیان شده، قابل تعمیم به سایر وبسایت های داخلی و خارجی و بسیاری ایده های جذاب دیگر است.

 

پیشنیاز

همچنین پس از این آموزش توصیه می‌شود:

 

کلید واژگان

آموزش پیشرفته وب اسکریپینگ – فیلم آموزش کراولر با پایتون – ترفندهای خزش در وبسایت ها – کتابخانه requests در پایتون – اپلیکیشن torob – وب اسکریپینگ با پایتون – آموزش پیشرفته وب اسکرپینگ – خزش در وب سایت – کتابخانه requests – اپلیکیشن ترب – وب کراولینگ – آموزش web crawling – آموزش crawler با پایتون – crawler با پایتون

سرفصل‌ها

سرفصل‌ها

درس صفر: معرفی دوره
  • مقدمه ای به وب اسکریپینگ
  • این آموزش در یک نگاه
  • پیشنیاز و اندیشه پردازی

 

درس دوم: معرفی select و select_one و مقایسه با find و findAll
  • هدف کلی: آشنایی با css selector ها برای دستیابی به تگ های موردنظر
  • مثال اول: یادآوری متدهای find و findAll و معرفی متدهای select و select_one
  • مثال دوم: دسترسی به تگ با استفاده از ویژگی class
  • مثال سوم: دسترسی به تگ با استفاده از id
  • مثال چهارم: دسترسی به تگ با استفاده از یک ویژگی دلخواه
  • مثال پنجم: دسترسی به فرزندان و المان های داخلی یک تگ
  • مثال ششم: دسترسی به فرزندان بلاواسطه یک تگ

 

درس سوم: معرفی کتابخانه requests
  • یاد آوری: استفاده از کتابخانه urllib و متد urlopen و بیان محدودیت های آن
  • معرفی و نصب کتابخانه requests
  • ارسال درخواست به یک صفحه اینترنتی با استفاده از متد get

 

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

 

درس پنجم: خزش در قالب های مختلف وبسایت ها (بخش دوم)
  • اشکال روش پیاده سازی شده در بخش قبلی و طرح یک ایده
  • پیاده سازی ایده و بازنویسی تابع

 

درس ششم: خزش در وبسایت ها به کمک نوار جستجو (بخش اول)
  • هدف کلی : استخراج اطلاعات از نتیجه جستجوی یک عنوان در وبسایت دیجیکالا
  • یافتن تگ ها و پارامترهای مورد نظر در وبسایت دیجیکالا
  • نوشتن تابع برای استخراج اطلاعات از نتایج جستجو

 

درس هفتم : خزش در وبسایت ها به کمک نوار جستجو (بخش دوم)
  • هدف کلی : استخراج اطلاعات از نتیجه جستجوی چندین عنوان در وبسایت های دیجیکالا و کالاوما
  • یافتن تگ ها و پارامترهای مورد نظر در وبسایت کالاوما
  • تعمیم تابع نوشته شده در درس قبلی برای وبسایت کالاوما
  • تکمیل و پیاده سازی تابع نهایی

 

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

 

درس نهم : خزش روی لینک های مورد نظر
  • هدف کلی: خزش روی کالاهای معرفی شده در صفحه اصلی وبسایت کالاوما
  • استخراج الگوی لینک های مورد نظر
  • نوشتن تابع برای خزش روی لینک ها با استفاده از عبارات باقاعده

 

درس دهم : خزش روی انواع مختلف صفحات یک وبسایت
  • منظور از انواع مختلف صفحات چیست؟
  • تشخیص نوع صفحه به کمک آدرس صفحه
  • تشخیص نوع صفحه با بررسی وجود یک تگ خاص (با کلاس یا آیدی خاص)
  • تشخیص نوع صفحه با بررسی وجود یا عدم وجود برخی المان ها

 

درس یازدهم : جمع بندی و نگاهی به آینده
  • مروری بر مطالب بیان شده
  • قدم بعدی : فریمورک scrapy
نظرات (11)

11 دیدگاه برای آموزش پیشرفته وب اسکریپینگ ــ ساخت خزنده چند سایت همزمان

  1. رضا محمدزاده (خریدار محصول)

    سلام
    یک ربات روی سایت دیوار ساختم اولش صفحه های وب رو بدرستی دانلود می کرد تا با کتابخانه bs4 اون ها رو تجزیه کنم ولی الان با urlopen که url رو بازمیکنمصفحه کامل نیست
    فکر میکنم سایت دسترسی مو محدود کرده چطور می تونم با تغییر ای پی به عنوان یک سیستم دیگه ربات رو run کنم

    • محمدحسین ماجدی نیا

      سلام به شما.
      چندتا رفرنس بهتون معرفی میکنم که بطور کلی برای استخراج داده از سایت هایی که یا بر مبنای جاوااسکریپت هستند یا اطلاعات داخل تگ script یا nonscript قرار گرفته که یه مقدار مسیر وب اسکریپینگ رو پیچیده تر میکنند، مفید هستند:
      مورد اول بر اساس مستندات خود اسکریپی هست:
      https://docs.scrapy.org/en/latest/topics/dynamic-content.html#parsing-javascript-code
      مورد بعدی استفاده از برخی ابزارهای کمکی مثل splash، سلنیوم و playwright هست که میتونید با سرچ بیشتر، در موردشون اطلاعات کسب کنید.
      اما در مورد تغییر ای پی که بیان کردید، من با سرچی که کردم چند راهکار وجود داره: در هر درخواست از یک User-Agent تصادفی که توسط fake-usagent ارائه شده است استفاده کنید. یا میان افزار پروکسی Scrapy را طوری تنظیم کنید که در هر درخواست بچرخد. یا از مرورگر tor استفاده کنید و tor proxies1 را تنظیم کنید. کد زیر هم یک نمونه هست که میتونه شروع خوبی باشه. برخی جاهاش رو باید تغییر بدید مثل ادرس سایت:
      import requests from bs4 import BeautifulSoup # Define headers headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" } # Define proxies proxies = { "http": "http://207.148.1.212:8080", "https": "https://207.148.1.212:8080" } # Send request response = requests.get("https://www.example.com", headers=headers, proxies=proxies) # Parse HTML soup = BeautifulSoup(response.content, "html.parser")

  2. سید امیر محمد هاشم زاده

    سلام من یک سوال داشتم من تمام کارایی که شما میگیدو کردم اما به لیست ها چیزی اپند نمیشه

    • محمدحسین ماجدی نیا

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

  3. H.Hekmatnezhad (خریدار محصول)

    سلام
    وقتی از کتاب خونه requests تابع get استفاده می کنم همچین error می ده:
    AttributeError: partially initialized module ‘requests’ has no attribute ‘get’ (most likely due to a circular import)

    هر کاری هم کردم مشکل رفع نشد.
    یه راهنمایی می کنید.
    ممنون

    • محمدحسین ماجدی نیا

      سلام
      این ارور معمولا به این دلیل هست که شما اسمی برای فایلتون انتخاب کردید که باعث شده با کتابخونه یا ماژول های پایتون تداخل ایجاد کنه.
      اسم فایلتون رو تغییر بدید. در صورتی که مشکل برطرف نشد مجددا پیام بدید.

  4. رضا (خریدار محصول)

    راستی فراموش بگم:
    در برخی از وب سایت ها برای به دست آووردن یک سری اطلاعات حتما باید روی قسمتی کلیک بشه تا اطلاعات دیگری در همان صفحه بارگذاری بشه و احتمالا باید متدی برای کلیک کردن در این کتابخونه روی ایونت ها وجود داشته باشه.
    خیلی خوب میشه که این مورد رو هم به صورت آپدیت برای این آموزش اضافه کنید.

    • محمدحسین ماجدی نیا

      به مطلب خوبی اشاره کردید
      این کار توسط کتابخونه سلنیم امکان پذیر هست
      سعی میکنیم در آموزش های بعدی، حتما به نحوه استفاده از سلنیم در وب اسکریپینگ اشاره کنیم

  5. رضا (خریدار محصول)

    روش آموزش و سرعت بیان بسیار عالی بود.
    راستی از اونجایی که ما با استخراج داده ها سر و کار داریم حتما نیاز هستش که اون ها رو در جایی ذخیره هم کنیم پس اگر ممکن بود در آموزش های بعدی نحوه ی ذخیره ی داده ها در یک پایگاه داده یا ذخیره ی اون ها روی یک فایل متنی یا اکسل رو هم آموزش بدید. با تشکر.

    • محمدحسین ماجدی نیا

      سلام
      ممنونم از اظهار لطف شما و مطلبی که اشاره کردید
      این نشون میده که با این حوزه آشنایی کافی دارید
      انشالله قطعا یکی از سرفصل های آتی آموزش وب اسکریپینگ پیشرفته، نحوه ذخیره سازی داده ها خواهد بود

  6. ایرج رضایی

    سلام
    با دیدن این دوره گفتید که میشه قیمت و لینک دانلود استخراج کرد ایا میشه توضیحات هم استخراج کرد چون در سایت ترب هر محصول توضیحاتی هم داره
    متشکر

    • محمدحسین ماجدی نیا

      سلام به شما
      توی این آموزش، اطلاعاتی که ما از هر کالا استخراج می کنیم، شامل عنوان کالا، قیمت کالا و فروشنده یا شرکت ارائه کننده اون محصول هست
      اما به طور کلی این امکان برای شما وجود داره که هر اطلاعات دیگری که توی صفحه معرفی محصول برای مخاطب نمایش داده میشه رو هم استخراج کنید نظیر توضیحات کالا، نظرات مخاطبین، ویژگی های ظاهری محصول و …
      کافی هست که بتونید محل قسمت موردنظرتون رو در سورس کد صفحه پیدا کنید … و ادامه کار که در آموزش توضیح داده شده!

  7. محمدرضا

    سلام
    آیا میشه از آموزش ارائه شده برای استخراج لایه ها روی نقشه های تعاملی استفاده کرد؟
    مثلا پلی گون های روی نقشه https://cadastre.mimt.gov.ir/Map/Map.aspx را همراه با مختصاتشون استخراج کرد!
    اصلا توی این سایت خاص، این عمل امکان پذیره؟
    ممنون

  8. kheiri.saeid@gmail.com

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

  9. ابوالفضل حسن زاده

    سلام استاد خسته نباشید. استاد من میخوام یه برنامه بنویسم با پایتون که هر موقع به اینترنت وصل شدم به یه سری سایت سر بزنه و برام از خواننده های مورد علاقم جدید ترین اهنگی که منتشر شده و یا من ندارم رو برام دانلود کنه. به نظر شما با دیدن این اموزش من میتونم این کار رو انجام بدم اصلا شدنی هست؟

    • محمدحسین ماجدی نیا

      سلام وقت شما بخیر
      ایده بسیار جذابی دارید
      در مورد این سوالتون که آیا اصلا شدنی هست یا نه، باید خدمتتون عرض کنم بله! به لطف پایتون و کتابخونه هایی که در زمینه وب اسکریپینگ در اختیار ما قرار میده، تقریبا هر ایده ای قابل پیاده سازی هست
      اما نکته ای که باید بهش اشاره کنم این هست که کلا این مطلب رو به یاد داشته باشید که صرفا با دیدن یک آموزش، نباید انتظار داشته باشیدکه بتونید صفر تا صد ایده هاتون رو پیاده سازی کنید.. بلکه باید در کنار اون آموزش، سرچ و جستجو کنید و حتی مقداری خودتون سعی و خطا انجام بدید .. هنر برنامه نویس هم دقیقا همین هست!
      با دیدن این آموزش ( و البته آشنایی با مقدمات وب اسکریپینگ نظیر آشنایی با کتابخانه Beautifulsoup) شما میتونید چیزی نزدیک به 90 درصد از ایده تون رو پیاده سازی کنید.. اتفاقا این مطلب که چطور از سایت های مختلف بتونیم یکسری اطلاعات مشخص رو استخراج کنیم، محور اصلی این آموزش هست .. فقط در مورد اینکه نحوه دانلود یک لینک و ذخیره اون به چه صورت هست، یا آهنگ های قبلی چجور و کجا ذخیره بشن باید یک مقدار خودتون جستجو انجام بدید(که البته اصلا چیز سخت و پیچیده ای هم نیست) و اینکه کمی هم بستگی به ساختار وبسایت های مورد نظرتون داره ..
      در کل اگر با دیدن آموزش، سوالی در مورد پروژه براتون پیش اومد، در خدمت هستم

  10. سالارپور (خریدار محصول)

    خیلی مفید بود. ممنون

    • محمدحسین ماجدی نیا

      سلام
      خوشحالم که آموزش برای شما سودمند بوده

  11. آسیه

    باسلام
    توی این دوره، وب اسکریپینگ برای سایت هایی که نیاز به یوزرنیم و پسورد هم آموزش داده میشه؟

    • محمدحسین ماجدی نیا

      سلام روزتون بخیر
      معمولا برای مشاهده و استخراج اطلاعات و قیمت ها از وبسایت های فروشگاهی نظیر دیجیکالا، نیازی به وارد کردن یوزرنیم و پسورد نیست
      اما اگر بخواهید اطلاعاتی رو استخراج کنید که نیاز به لاگین داشته باشه، معمولا یک کتابخونه مورد استفاده قرار میگیره به نام selenium
      توی این دوره از کتابخونه سلنیوم استفاده نکردیم اما شما میتونید هم از طریق جستجو در اینترنت با این کتابخونه آشنا بشید و هم اینکه نگاهی به آموزش ساخت ربات اینستاگرام با پایتون بندازید
      https://hamruyesh.com/product/instagram-bot-python-tutorial/
      نکته پایانی اینکه این دوره، گام نخست از آموزش های پیشرفته وب اسکریپینگ هست و در آموزش های بعدی، مطالب و مفاهیم دیگری از وب اسکریپینگ رو بیان خواهیم کرد که مثل قطعات پازل، در کنار همدیگه قرار میگیره و در نهایت، ما رو به وب اسکریپرهای حرفه ای تبدیل میکنه
      و انشالله در آینده بصورت مفصل به کاربرد کتابخانه سلنیوم در وب اسکریپینگ اشاره خواهد شد

دیدگاه خود را بنویسید

نظرات کاربران در خصوص دوره 

11 دیدگاه برای آموزش پیشرفته وب اسکریپینگ ــ ساخت خزنده چند سایت همزمان

  1. رضا محمدزاده (خریدار محصول)

    سلام
    یک ربات روی سایت دیوار ساختم اولش صفحه های وب رو بدرستی دانلود می کرد تا با کتابخانه bs4 اون ها رو تجزیه کنم ولی الان با urlopen که url رو بازمیکنمصفحه کامل نیست
    فکر میکنم سایت دسترسی مو محدود کرده چطور می تونم با تغییر ای پی به عنوان یک سیستم دیگه ربات رو run کنم

    • محمدحسین ماجدی نیا

      سلام به شما.
      چندتا رفرنس بهتون معرفی میکنم که بطور کلی برای استخراج داده از سایت هایی که یا بر مبنای جاوااسکریپت هستند یا اطلاعات داخل تگ script یا nonscript قرار گرفته که یه مقدار مسیر وب اسکریپینگ رو پیچیده تر میکنند، مفید هستند:
      مورد اول بر اساس مستندات خود اسکریپی هست:
      https://docs.scrapy.org/en/latest/topics/dynamic-content.html#parsing-javascript-code
      مورد بعدی استفاده از برخی ابزارهای کمکی مثل splash، سلنیوم و playwright هست که میتونید با سرچ بیشتر، در موردشون اطلاعات کسب کنید.
      اما در مورد تغییر ای پی که بیان کردید، من با سرچی که کردم چند راهکار وجود داره: در هر درخواست از یک User-Agent تصادفی که توسط fake-usagent ارائه شده است استفاده کنید. یا میان افزار پروکسی Scrapy را طوری تنظیم کنید که در هر درخواست بچرخد. یا از مرورگر tor استفاده کنید و tor proxies1 را تنظیم کنید. کد زیر هم یک نمونه هست که میتونه شروع خوبی باشه. برخی جاهاش رو باید تغییر بدید مثل ادرس سایت:
      import requests from bs4 import BeautifulSoup # Define headers headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36" } # Define proxies proxies = { "http": "http://207.148.1.212:8080", "https": "https://207.148.1.212:8080" } # Send request response = requests.get("https://www.example.com", headers=headers, proxies=proxies) # Parse HTML soup = BeautifulSoup(response.content, "html.parser")

  2. سید امیر محمد هاشم زاده

    سلام من یک سوال داشتم من تمام کارایی که شما میگیدو کردم اما به لیست ها چیزی اپند نمیشه

    • محمدحسین ماجدی نیا

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

  3. H.Hekmatnezhad (خریدار محصول)

    سلام
    وقتی از کتاب خونه requests تابع get استفاده می کنم همچین error می ده:
    AttributeError: partially initialized module ‘requests’ has no attribute ‘get’ (most likely due to a circular import)

    هر کاری هم کردم مشکل رفع نشد.
    یه راهنمایی می کنید.
    ممنون

    • محمدحسین ماجدی نیا

      سلام
      این ارور معمولا به این دلیل هست که شما اسمی برای فایلتون انتخاب کردید که باعث شده با کتابخونه یا ماژول های پایتون تداخل ایجاد کنه.
      اسم فایلتون رو تغییر بدید. در صورتی که مشکل برطرف نشد مجددا پیام بدید.

  4. رضا (خریدار محصول)

    راستی فراموش بگم:
    در برخی از وب سایت ها برای به دست آووردن یک سری اطلاعات حتما باید روی قسمتی کلیک بشه تا اطلاعات دیگری در همان صفحه بارگذاری بشه و احتمالا باید متدی برای کلیک کردن در این کتابخونه روی ایونت ها وجود داشته باشه.
    خیلی خوب میشه که این مورد رو هم به صورت آپدیت برای این آموزش اضافه کنید.

    • محمدحسین ماجدی نیا

      به مطلب خوبی اشاره کردید
      این کار توسط کتابخونه سلنیم امکان پذیر هست
      سعی میکنیم در آموزش های بعدی، حتما به نحوه استفاده از سلنیم در وب اسکریپینگ اشاره کنیم

  5. رضا (خریدار محصول)

    روش آموزش و سرعت بیان بسیار عالی بود.
    راستی از اونجایی که ما با استخراج داده ها سر و کار داریم حتما نیاز هستش که اون ها رو در جایی ذخیره هم کنیم پس اگر ممکن بود در آموزش های بعدی نحوه ی ذخیره ی داده ها در یک پایگاه داده یا ذخیره ی اون ها روی یک فایل متنی یا اکسل رو هم آموزش بدید. با تشکر.

    • محمدحسین ماجدی نیا

      سلام
      ممنونم از اظهار لطف شما و مطلبی که اشاره کردید
      این نشون میده که با این حوزه آشنایی کافی دارید
      انشالله قطعا یکی از سرفصل های آتی آموزش وب اسکریپینگ پیشرفته، نحوه ذخیره سازی داده ها خواهد بود

  6. ایرج رضایی

    سلام
    با دیدن این دوره گفتید که میشه قیمت و لینک دانلود استخراج کرد ایا میشه توضیحات هم استخراج کرد چون در سایت ترب هر محصول توضیحاتی هم داره
    متشکر

    • محمدحسین ماجدی نیا

      سلام به شما
      توی این آموزش، اطلاعاتی که ما از هر کالا استخراج می کنیم، شامل عنوان کالا، قیمت کالا و فروشنده یا شرکت ارائه کننده اون محصول هست
      اما به طور کلی این امکان برای شما وجود داره که هر اطلاعات دیگری که توی صفحه معرفی محصول برای مخاطب نمایش داده میشه رو هم استخراج کنید نظیر توضیحات کالا، نظرات مخاطبین، ویژگی های ظاهری محصول و …
      کافی هست که بتونید محل قسمت موردنظرتون رو در سورس کد صفحه پیدا کنید … و ادامه کار که در آموزش توضیح داده شده!

  7. محمدرضا

    سلام
    آیا میشه از آموزش ارائه شده برای استخراج لایه ها روی نقشه های تعاملی استفاده کرد؟
    مثلا پلی گون های روی نقشه https://cadastre.mimt.gov.ir/Map/Map.aspx را همراه با مختصاتشون استخراج کرد!
    اصلا توی این سایت خاص، این عمل امکان پذیره؟
    ممنون

  8. kheiri.saeid@gmail.com

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

  9. ابوالفضل حسن زاده

    سلام استاد خسته نباشید. استاد من میخوام یه برنامه بنویسم با پایتون که هر موقع به اینترنت وصل شدم به یه سری سایت سر بزنه و برام از خواننده های مورد علاقم جدید ترین اهنگی که منتشر شده و یا من ندارم رو برام دانلود کنه. به نظر شما با دیدن این اموزش من میتونم این کار رو انجام بدم اصلا شدنی هست؟

    • محمدحسین ماجدی نیا

      سلام وقت شما بخیر
      ایده بسیار جذابی دارید
      در مورد این سوالتون که آیا اصلا شدنی هست یا نه، باید خدمتتون عرض کنم بله! به لطف پایتون و کتابخونه هایی که در زمینه وب اسکریپینگ در اختیار ما قرار میده، تقریبا هر ایده ای قابل پیاده سازی هست
      اما نکته ای که باید بهش اشاره کنم این هست که کلا این مطلب رو به یاد داشته باشید که صرفا با دیدن یک آموزش، نباید انتظار داشته باشیدکه بتونید صفر تا صد ایده هاتون رو پیاده سازی کنید.. بلکه باید در کنار اون آموزش، سرچ و جستجو کنید و حتی مقداری خودتون سعی و خطا انجام بدید .. هنر برنامه نویس هم دقیقا همین هست!
      با دیدن این آموزش ( و البته آشنایی با مقدمات وب اسکریپینگ نظیر آشنایی با کتابخانه Beautifulsoup) شما میتونید چیزی نزدیک به 90 درصد از ایده تون رو پیاده سازی کنید.. اتفاقا این مطلب که چطور از سایت های مختلف بتونیم یکسری اطلاعات مشخص رو استخراج کنیم، محور اصلی این آموزش هست .. فقط در مورد اینکه نحوه دانلود یک لینک و ذخیره اون به چه صورت هست، یا آهنگ های قبلی چجور و کجا ذخیره بشن باید یک مقدار خودتون جستجو انجام بدید(که البته اصلا چیز سخت و پیچیده ای هم نیست) و اینکه کمی هم بستگی به ساختار وبسایت های مورد نظرتون داره ..
      در کل اگر با دیدن آموزش، سوالی در مورد پروژه براتون پیش اومد، در خدمت هستم

  10. سالارپور (خریدار محصول)

    خیلی مفید بود. ممنون

    • محمدحسین ماجدی نیا

      سلام
      خوشحالم که آموزش برای شما سودمند بوده

  11. آسیه

    باسلام
    توی این دوره، وب اسکریپینگ برای سایت هایی که نیاز به یوزرنیم و پسورد هم آموزش داده میشه؟

    • محمدحسین ماجدی نیا

      سلام روزتون بخیر
      معمولا برای مشاهده و استخراج اطلاعات و قیمت ها از وبسایت های فروشگاهی نظیر دیجیکالا، نیازی به وارد کردن یوزرنیم و پسورد نیست
      اما اگر بخواهید اطلاعاتی رو استخراج کنید که نیاز به لاگین داشته باشه، معمولا یک کتابخونه مورد استفاده قرار میگیره به نام selenium
      توی این دوره از کتابخونه سلنیوم استفاده نکردیم اما شما میتونید هم از طریق جستجو در اینترنت با این کتابخونه آشنا بشید و هم اینکه نگاهی به آموزش ساخت ربات اینستاگرام با پایتون بندازید
      https://hamruyesh.com/product/instagram-bot-python-tutorial/
      نکته پایانی اینکه این دوره، گام نخست از آموزش های پیشرفته وب اسکریپینگ هست و در آموزش های بعدی، مطالب و مفاهیم دیگری از وب اسکریپینگ رو بیان خواهیم کرد که مثل قطعات پازل، در کنار همدیگه قرار میگیره و در نهایت، ما رو به وب اسکریپرهای حرفه ای تبدیل میکنه
      و انشالله در آینده بصورت مفصل به کاربرد کتابخانه سلنیوم در وب اسکریپینگ اشاره خواهد شد

دیدگاه خود را بنویسید

کلاس آنلاین یادگیری ماشین
سفری با مصطفی آصفی
کلاس آنلاین یادگیری ماشین ــــ سفری با مصطفی آصفی