Reputation: 21
I'm having trouble parsing html element inside li tag. This is my code:
from bs4 import BeautifulSoup
import requests
sess = requests.Session()
url = 'http://example.com'
page = sess.get(url)
page = BeautifulSoup(page.text)
soap = page.select('li.item')
print(soap.find('h3').text)
This is html code:
...
<li class="item">
<strong class="item-type">design</strong>
<h3 class="item-title">Item title</h3>
<p class="item-description">
Lorem ipsum dolor sit amet, dicam partem praesent vix ei, ne nec quem omnium cotidieque, omnes deseruisse efficiendi sit te. Mei putant postulant id. Cibo doctus eligendi at vix. Eos nisl exerci mediocrem cu, nullam pertinax petentium sea et. Vim affert feugait an.
</p>
</li>
...
There are more than 10 li tag I just paste one of them.
Output error:
Traceback (most recent call last):
File "test.py", line 10, in <module>
print(soap.find('h3').text)
AttributeError: 'list' object has no attribute 'find'
Upvotes: 1
Views: 1672
Reputation: 21
Thanks to @DaveJ , this method worked:
[s.find('h3').text for s in soap]
Upvotes: 1