I am trying to fetch parent element of a particular tag using below mentioned code:
# -*- coding: cp1252 -*-
import csv
import urllib2
import sys
import time
from bs4 import BeautifulSoup
from itertools import islice
page1= urllib2.urlopen('http://www.sfr.fr/mobile/telephones?vue=000029&tgp=toutes-les-offres&typesmartphone=se-android&typesmartphone=se-apple&typesmartphone=se-bada&typesmartphone=se-rim-blackberry&typesmartphone=se-windows&p=0').read()
soup1 = BeautifulSoup(page1)
price_parent = soup1.findParents('div')
print price_parent
Problem: Output which I am getting after running this code returns Null array [], if I use findParent instead of Parents then also it returns None value.
To solve my actual problem I need to get parents of elements for which I am getting None value as mentioned above.
Please help me in solving this issue and pardon my ignorance as I am new to programming.
解决方案
.findParents() does not do what you think it does. It finds the parents of the current element that match the search. You are trying to find the parents of a page element, which is already the top-level element.
If you had a structure like this:
Some text
where soup is a BeautifulSoup variable for the whole structure, you can find the span with:
spanelement = soup.find('span', id='bar')
and then calling .findParent('div') will return a result, namely the
So, calling .findParents() on a top-level element will always return an empty result, there are no parents. Call it on something that does have a parent element instead.