input: Write a python function to scrape blog posts' title, body, and URL from a given web page.
  assert scrape_blog_posts('https://example.com/')==[{'title': 'Post 1', 'body': 'This is the first post.', 'url': 'https://example.com/post1'}, {'title': 'Post 2', 'body': 'This is the second post.', 'url': 'https://example.com/post2'}]
  assert scrape_blog_posts('https://example-blog.com/')==[{'title': 'Blog 1', 'body': 'Intro to blog 1.', 'url': 'https://example-blog.com/blog1'}, {'title': 'Blog 2', 'body': 'Details of blog 2.', 'url': 'https://example-blog.com/blog2'}]
output: import requests
  from bs4 import BeautifulSoup
  
  def scrape_blog_posts(url):
      response = requests.get(url)
      soup = BeautifulSoup(response.text, 'html.parser')
      posts = []
      
      for article in soup.find_all('article'):
          title_tag = article.find('h1') or article.find('h2') or article.find('h3')
          body_tag = article.find('div', class_='post-body') or article.find('p')
          link_tag = article.find('a', href=True)
          
          title = title_tag.get_text(strip=True) if title_tag else 'No Title'
          body = body_tag.get_text(strip=True) if body_tag else 'No Body'
          link = link_tag['href'] if link_tag else url
          
          posts.append({'title': title, 'body': body, 'url': link})
      
      return posts