Mark20 Mark20 - 1 year ago 105
Python Question

'str' object has no attribute 'p' using beautifulsoup

I have been following a tutorial on using BeautifulSoup, however when I try to read the title or even paragraphs (using soup.p) I get an error saying, "Traceback (most recent call last):
File "*****/", line 9, in
pTag = soup.p
AttributeError: 'str' object has no attribute 'p'"

I am still very new to Python, sorry to bother if these is too much of an easy issue but I will greatly appreciate any help. Code given below:

import urllib.request
from bs4 import BeautifulSoup

with urllib.request.urlopen('') as response:
page =
soup = BeautifulSoup(page, "html5lib")
soup = soup.prettify()
pTag = soup.p


Answer Source

Quoting Beautiful Soup Documentation

The prettify() method will turn a Beautiful Soup parse tree into a nicely formatted Unicode string, with each HTML/XML tag on its own line.

You set an string to soup var here: soup = soup.prettify(). Of course a string has not p property, then crashes.

To find all ps:

page =
soup = BeautifulSoup(page, "html5lib")
for paragraph in soup.find_all('p'):
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download