input: Write a function to create a web crawler in Python that starts from a given URL, looks for other links on the page, and then scrapes the page content. Return a list of all URLs visited and the content scraped from each page.
  assert crawl('https://example.com') == [expected_output_1, expected_output_2, ...]
  assert crawl('https://test.com') == [expected_output_1, expected_output_2, ...]
  assert crawl('https://nonexistent.com') == []
output: 
  import requests
  from bs4 import BeautifulSoup
  from urllib.parse import urljoin
  
  def crawl(url):
      visited_urls = []
      to_visit = [url]
      headers = {'User-Agent': 'Mozilla/5.0'}
      
      while to_visit:
          current_url = to_visit.pop(0)
          try:
              response = requests.get(current_url, headers=headers)
              if response.status_code == 200:
                  soup = BeautifulSoup(response.content, 'html.parser')
                  content = soup.get_text()
                  visited_urls.append((current_url, content))
                  
                  for link in soup.find_all('a', href=True):
                      new_url = urljoin(current_url, link['href'])
                      if new_url not in visited_urls and new_url not in to_visit:
                          to_visit.append(new_url)
          except requests.RequestException:
              continue
      
      return visited_urls
  