Show all links from a website with Python and BeautifulSoup – Video

Showing all links from a website with Python and BeautifulSoup is actually 6 lines of code – 2 to define the used libraries and 4 to do the job:

import urllib.request
from bs4 import BeautifulSoup

resp = urllib.request.urlopen("https://www.vitoshacademy.com")
soup = BeautifulSoup(resp, from_encoding=resp.info().get_param('charset'))

for link in soup.find_all('a', href=True):
    print(link['href'])

In general, BeautifulSoup comes out of the box with beautiful documentation, which can teach a lot of stuff. And the results look ok:

These 6 lines inspired me so much, that I even did a 15 minute video available here:

Get all links from a website with Python and Beautiful Soup

The code from  the video is a bit different, as it uploads to a file as well:

import urllib.request
from bs4 import BeautifulSoup

resp = urllib.request.urlopen("https://www.vitoshacademy.com")
soup = BeautifulSoup(resp)

with open('extract.txt', 'w+', encoding='utf-8') as file:
    for link in soup.find_all('a', href=True):
        lines = f"{link.getText()}\n{link['href']}\n"
        print(lines)
        file.write(f'{lines}')

Enjoy it!