beautifulsoup scrape html code example
Example 1: BeautifulSoup - scraping list from html
from bs4 import BeautifulSoup
SIMPLE_HTML = '''<html>
<head></head>
<body>
<h1>This is a title</h1>
<p class="subtitle">Lorem ipsum dolor sit amet.</p>
<p>Here's another p without a class</p>
<ul>
<li>Sarah</li>
<li>Mary</li>
<li>Charlotte</li>
<li>Carl</li>
</ul>
</body>
</html>'''
simple_soup = BeautifulSoup(SIMPLE_HTML, 'html.parser')
def find_list():
list_items = simple_soup.find_all('li')
my_list = [e.string for e in list_items]
print(my_list)
find_list()
Example 2: BeautifulSoup - scraping paragraphs from html
from bs4 import BeautifulSoup
SIMPLE_HTML = '''<html>
<head></head>
<body>
<h1>This is a title</h1>
<p class="subtitle">Lorem ipsum dolor sit amet.</p>
<p>Here's another p without a class</p>
<ul>
<li>Sarah</li>
<li>Mary</li>
<li>Charlotte</li>
<li>Carl</li>
</ul>
</body>
</html>'''
simple_soup = BeautifulSoup(SIMPLE_HTML, 'html.parser')
def find_paragraph():
print(simple_soup.find('p', {'class': 'subtitle'}).string)
def find_other_paragraph():
paragraphs = simple_soup.find_all('p')
other_paragraph = [p for p in paragraphs if 'subtitle' not in p.attrs.get('class', [])]
print(other_paragraph[0].string)
find_paragraph()
find_other_paragraph()