وب اسکرپینگ (Web Scraping) یعنی استخراج اطلاعات از صفحات وب به صورت خودکار با استفاده از کد. یکی از پرکاربردترین کتابخانهها برای این کار در پایتون، BeautifulSoup هست که در کنار requests استفاده میشه.
1. نصب کتابخانهها
قبل از شروع، ابتدا باید کتابخانههای موردنیاز رو نصب کنیم:
pip install requestspip install beautifulsoup4
2. وارد کردن کتابخانهها
import requestsfrom bs4 import BeautifulSoup
3. ارسال درخواست به یک صفحه وب
فرض کن میخوای اطلاعات از یک صفحه سادهی وب بگیریم. اول باید محتوای HTML اون صفحه رو دریافت کنیم:
url = "https://example.com"response = requests.get(url)# بررسی وضعیت پاسخ
if response.status_code == 200:html_content = response.textelse:print("خطا در دریافت صفحه:", response.status_code)
4. تجزیه (parse) کردن HTML
soup = BeautifulSoup(html_content, "html.parser")
حالا متغیر soup مثل یک درخت HTML عمل میکنه و میتونی باهاش عناصر صفحه رو پیدا کنی.
5. استخراج اطلاعات
title_tag = soup.find("title")print("عنوان صفحه:", title_tag.text)
all_links = soup.find_all("a")
for link in all_links:
href = link.get("href")
text = link.text.strip()
print("متن لینک:", text)
print("آدرس لینک:", href)
element = soup.find("div", class_="article-body")print(element.text)
یا مثلاً:
header = soup.find("h1", id="main-title")print(header.text)
6. نکات مهم امنیتی و اخلاقی
همیشه robots.txt سایت هدف رو بررسی کن. بعضی از سایتها اجازهی اسکرپینگ نمیدن.
تعداد درخواستها رو کنترل کن (مثلاً با time.sleep(1) بین هر درخواست) تا سرور رو تحت فشار نذاری.
از headers مناسب استفاده کن:
headers = {"User-Agent": "Mozilla/5.0 (compatible; MyScraper/1.0)"}response = requests.get(url, headers=headers)
with open("data.txt", "w", encoding="utf-8") as f:for link in all_links:href = link.get("href")text = link.text.strip()f.write(f"{text} - {href}\n")