گرفتن اطلاعات از وب پیج بدون نیاز به web api
سلام. یک صفحه وب داریم ( مثلا سایت یاهو یا سایت سازمان بورس )که درون آن یک سری اطلاعات است. با چه روشی میتونیم آن اطلاعات را جهت تحلیل وارد برنامه خود بکنم؟ در اصل روشی برای کپچر اطلاعات یک وب سایت جداگانه مثلا یاهو یا هر سایت دیگه ای میخوام که مقادیر اون المنت ها رو بدست بیارم.
هم اکنون سایت سازمان بورس یک api پولی را مشخص کرده. اما چند سال پیش یکی از دوست های من بدون api اطلاعات درون وب سایت را واکشی میکرد. اگر اسم روش یا پلاگین مورد نظر را هم بیان کنید خودم در موردش تحقیق میکنم.
پاسخ هوش مصنوعی
برای گرفتن اطلاعات از یک وب سایت بدون نیاز به web API، می توانید از تکنیک های وب اسکرپینگ (Web Scraping) استفاده کنید. وب اسکرپینگ به معنی استخراج داده ها از وب سایت هاست. برای انجام این کار معمولاً از کتابخانه های مختلف در زبان های برنامه نویسی استفاده می شود.
در زبان پایتون، یکی از محبوب ترین کتابخانه ها برای وب اسکرپینگ، BeautifulSoup
است. این کتابخانه به شما این امکان را می دهد تا تگ های HTML را تجزیه و تحلیل کرده و اطلاعات مورد نظر خود را استخراج کنید.
اینجا یک نمونه کد برای استفاده از BeautifulSoup
و requests
برای واکشی اطلاعات از یک صفحه وب آورده شده است:
import requests
from bs4 import BeautifulSoup
url = 'https://example.com' # آدرس وب سایت مورد نظر
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# برای پیدا کردن یک عنصر خاص می توانید از select یا find استفاده کنید
data = soup.find('div', class_='example-class') # تگ و کلاس مورد نظر خود را وارد کنید
if data:
print(data.text) # متن داخل عنصر را چاپ کنید
else:
print('Element not found')
علاوه بر BeautifulSoup
، کتابخانه های دیگری مانند Scrapy
و lxml
نیز وجود دارند که می توانید برای وب اسکرپینگ استفاده کنید.
همچنین، برای واکشی اطلاعات از سایت ها با محتوای دینامیک (که با جاوااسکریپت بارگذاری می شوند)، می توانید از Selenium
استفاده کنید. این ابزار به شما اجازه می دهد تا مرورگر را به طور خودکار کنترل کنید و اطلاعات را جمع آوری کنید.
در نهایت، قبل از شروع به وب اسکرپینگ، حتماً به قوانین و سیاست های سایت مورد نظر توجه کنید تا از ایجاد مشکلات قانونی جلوگیری کنید.
ببینید اطلاعاتی که شما از یک سایت می گیرید باید از دیتابیس اون سایت دریافت بشه. به دیتابیس یک سایت هم به صورت مستقیم هیچ موقع دسترسی وجود نداره و باید حتما در قالب Web Api باشه. اصلا اگر قرار بود هر کسی بتونه اطلاعات رو خودش از یک سایت بگیره دیگه Web Api ها برای چی به وجود اومدن ؟ اون دوستتون که می فرمایید اطلاعات رو بدون داشتن Web Api میخونده یا اینکه به اطلاعات دیتابیس اون سایت دسترسی داشته و مستقیم از دیتابیس سایت داشته اطلاعات رو می خونده و شایدم توسط جی کوئری بین تگ های Html سایت مورد نظر جستجو می کرده و یک سری اطلاعات رو میخونده که این روش اصلا منطقی نیست و مطمئنا نمیشه اطلاعات درست و حسابی هم بدست آورد چون در صورت کوچکترین تغییر در سایت اصلی همه چیز بهم میریزه.
در مجموع بنده فکر نمیکنم روش شناخته شده ای برای این کار وجود داشته باشه.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2