”;
Method Description
The find_all_previous() method in Beautiful Soup look backwards in the document from this PageElement and finds all the PageElements that match the given criteria and appear before the current element. It returns a ResultsSet of PageElements that comes before the current tag in the document. Like all other find methods, this method has the following syntax −
Syntax
find_previous(name, attrs, string, limit, **kwargs)
Parameters
-
name − A filter on tag name.
-
attrs − A dictionary of filters on attribute values.
-
string − A filter for a NavigableString with specific text.
-
limit − Stop looking after finding this many results.
-
kwargs − A dictionary of filters on attribute values.
Return Value
The find_all_previous() method returns a ResultSet of Tag or NavigableString objects. If the limit parameter is 1, the method is equivalent to find_previous() method.
Example 1
In this example, name property of each object that appears before the first input tag is displayed.
from bs4 import BeautifulSoup fp = open("index.html") soup = BeautifulSoup(fp, ''html.parser'') tag = soup.find(''input'') for t in tag.find_all_previous(): print (t.name)
Output
form h1 body title head html
Example 2
In the HTML document under consideration (index.html), there are three input elements. With the following code, we print the tag names of all preceding tags before thr <input> tag with nm attribute as marks. To differentiate between the two input tags before it, we also print the attrs property. Note that the other tags don”t have any attributes.
from bs4 import BeautifulSoup fp = open("index.html") soup = BeautifulSoup(fp, ''html.parser'') tag = soup.find(''input'', {''name'':''marks''}) pretags = tag.find_all_previous() for pretag in pretags: print (pretag.name, pretag.attrs)
Output
input {''type'': ''text'', ''id'': ''age'', ''name'': ''age''} input {''type'': ''text'', ''id'': ''nm'', ''name'': ''name''} form {} h1 {} body {} title {} head {} html {}
Example 3
The BeautifulSoup object stores the entire document”s tree. It doesn”t have any previous element, as the example below shows −
from bs4 import BeautifulSoup fp = open("index.html") soup = BeautifulSoup(fp, ''html.parser'') tags = soup.find_all_previous() print (tags)
Output
[]
”;