آموزش خراش دادن وب با پایتون و سوپ زیبا

در این آموزش، ما از پایتون و یک کتابخانه محبوب خراش دادن وب به نام Beautiful Soup برای خراش دادن یک وب سایت استفاده خواهیم کرد. ما اصول اسکرپینگ وب، از جمله درخواست، تجزیه HTML و استخراج داده ها را پوشش خواهیم داد.
پیش نیازها
- درک اولیه پایتون
- آشنایی با HTML.
ابزارها و کتابخانه ها
- پایتون 3.x
- سوپ زیبا 4
- درخواست ها
مرحله 1: کتابخانه های مورد نیاز را نصب کنید
ابتدا باید کتابخانه های Beautiful Soup and Requests را نصب کنید. با استفاده از pip می توانید این کار را انجام دهید:
pip install beautifulsoup4
pip install requests
مرحله 2: کتابخانه های مورد نیاز را وارد کنید
در اسکریپت پایتون، کتابخانه های مورد نیاز را وارد کنید:
import requests
from bs4 import BeautifulSoup
مرحله 3: یک درخواست HTTP ارسال کنید
برای خراش دادن یک وب سایت، ابتدا باید محتوای HTML آن را دانلود کنید. برای این کار می توانید از کتابخانه Requests استفاده کنید:
url="https://example.com" # Replace this with the website you want to scrape
response = requests.get(url)
# Check if the request was successful (status code 200)
if response.status_code == 200:
html_content = response.text
else:
print(f"Failed to fetch the webpage. Status code: {response.status_code}")
مرحله 4: محتوای HTML را تجزیه کنید
اکنون که محتوای HTML را دارید، می توانید آن را با استفاده از Beautiful Soup تجزیه کنید:
soup = BeautifulSoup(html_content, 'html.parser')
مرحله 5: استخراج داده ها
با HTML تجزیه شده، اکنون می توانید داده های خاصی را با استفاده از روش های Beautiful Soup استخراج کنید:
# Find a single element by its tag
title_tag = soup.find('title')
# Extract the text from the tag
title_text = title_tag.text
print(f"The title of the webpage is: {title_text}")
# Find all the links on the webpage
links = soup.find_all('a')
for link in links:
href = link.get('href')
link_text = link.text
print(f"{link_text}: {href}")
مرحله 6: ذخیره داده های استخراج شده
می توانید داده های استخراج شده را در هر فرمتی که ترجیح می دهید ذخیره کنید، مانند فایل CSV یا JSON. در اینجا مثالی از نحوه ذخیره داده های استخراج شده در یک فایل CSV آورده شده است:
import csv
# Assuming you have a list of dictionaries with the extracted data
data = [{'text': 'Link 1', 'url': 'https://example.com/link1'},
{'text': 'Link 2', 'url': 'https://example.com/link2'}]
with open('extracted_data.csv', 'w', newline="") as csvfile:
fieldnames = ['text', 'url']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for row in data:
writer.writerow(row)
و بس! این آموزش اولیه باید به شما کمک کند تا با استفاده از Python و Beautiful Soup شروع به خراش دادن وب کنید. به یاد داشته باشید که همیشه به شرایط خدمات وب سایت و فایل robots.txt احترام بگذارید و از بارگیری بیش از حد سرور با درخواست های زیاد در مدت زمان کوتاه خودداری کنید.