Question

I have following piece of html:

<p class="attrs"><span>foo:</span> <strong>foo</strong></p>
<p class="attrs"><span>bar:</span> <strong>bar</strong></p>
<p class="attrs"><span>foo2:</span> <strong></strong></p>
<p class="attrs"><span>description:</span> <strong>description body</strong></p>
<p class="attrs"><span>another foo:</span> <strong>foooo</strong></p>

I would like to get description body using splinter. I've managed to get a list of p using

browser.find_by_css("p.attrs")
Was it helpful?

Solution

xpath = '//p[@class="attrs"]/span[text()="description:"]/following-sibling::strong'
description = browser.find_by_xpath(xpath).first.text

OTHER TIPS

Would you be able to get the description using find_by_tag?

Find by Tag

browser.find_by_tag('span')

Then go iterate through all 'span' tags and look for the value of 'description'. I used the documentation here

You may be able to acomplish using this code, if you want to try a different approach with the selenium library:

import selenium
from selenium import webdriver
driver = webdriver.Chrome('PATH_LOCATION_TO_CHROME_DRIVER') 
driver.find_elements_by_class_name("attrs")

Hope this helps! replace PATH_LOCATION_TO_CHROME_DRIVER --- with the location of your chrome driver, if you google it should be first or second link to download and then place that download inside your Python's project folder.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top