user7355384
user7355384

Reputation: 49

Why isn't beautifulsoup's find_all not working

I have decided to view a website's source code, and chose a class, which is "expanded". I wanted to print out all of its contents, with this code:

import requests
from bs4 import BeautifulSoup

page = requests.get("https://www.quora.com/How-can-I-write-a-bot-using-Python")
soup = BeautifulSoup(page.content, 'html.parser')
print soup.find_all(class_='expanded')

but it simply prints out:

[]

Please help me detect what's wrong.

I already saw this thread and tried following what the answer said but it did not help me since this error appears in the terminal:

bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

Upvotes: 0

Views: 1605

Answers (1)

Charlie B.
Charlie B.

Reputation: 36

When searching for a class value, you should pass it in like this:

soup.find_all(attrs={"class":"expanded"})

That being said, I don't see anything in the source code of that site with a class called "expanded". The closest thing I could find was class='ui_qtext_expanded'. If that is what you are trying to find, you need to include the whole string.

soup.find_all(attrs={"class":"ui_qtext_expanded"})

Upvotes: 1

Related Questions