Spaces:
Runtime error
Runtime error
import requests | |
from bs4 import BeautifulSoup | |
def process_webpage(url:str): | |
# A set to keep track of visited pages | |
visited_pages = set() | |
text_list = [] | |
# A function to recursively get all child pages | |
def get_child_pages(url): | |
# Make a GET request to the page and get the HTML content | |
response = requests.get(url) | |
html_content = response.content | |
# Parse the HTML content using BeautifulSoup | |
soup = BeautifulSoup(html_content, "html.parser") | |
# Get all the text content from the relevant HTML tags | |
text_content = "" | |
for tag in ["p", "h1", "h2", "h3", "h4", "h5", "h6", "li"]: | |
for element in soup.find_all(tag): | |
text_content += element.get_text() + " " | |
# Add the page to the set of visited pages | |
text_content = f"page {url} contains: " + text_content | |
visited_pages.add(url) | |
# Find all the child links and recursively get their text content | |
for link in soup.find_all("a"): | |
href = link.get("href") | |
if href and href not in visited_pages and url in href: | |
get_child_pages(href) | |
text_list.append(text_content) | |
# Get the text content of the landing page | |
get_child_pages(url) | |
# make main page as first item | |
text_list.reverse() | |
page_content = "\n".join(text_list) | |
# Print the text content of the landing page and all child pages | |
print(page_content) | |
return page_content | |
if __name__ == '__main__': | |
process_webpage(url="https://www.meet-drift.ai/") |