Parsing an html line and pulling out only numbers that meet a certain criteria

John Gordon gordon at panix.com
Thu Sep 12 01:40:12 EDT 2013


In <d9a020cc-89eb-4cb4-b884-abe156f18d33 at googlegroups.com> Cory Mottice <cmottice at gmail.com> writes:

> I am using line.rfind to parse a particular line of html code. For example, this is the line of html code I am parsing:

> <strong class="temp">79<span>°</span></strong><span class="low"><span>Lo</span> 56<span>°</span></span>

> and this is the code I use to split the line to (in this case) pull out the '79'.

> position0 = line.rfind('{}'.format(date1.strftime("%a")))
> if position0 > 0 :
>         self.high0 = lines[line_number + 4].split('<span>')[0].split('">')[-1]

> Now I need to only pull out that number if it is >=94 and <=37. If it
> does not meet this criteria, I don't want anything to happen. Any ideas?
> Thank you in advance!

If you have the string value in a variable, you can call int() to convert
it to an integer, like so:

    x = "57"   # string value
    y = int(x) # integer value

But what do you mean by you "don't want anything to happen"?  Obviously
you have to do the work of grabbing the correct part of the line and
parsing it to an integer value; you can't magically undo that work if the
value isn't in the desired range.

Do you mean that you don't want to assign it to self.high0?  That's easy;
assign it to a temporary variable first, and only assign it to self.high0
if it falls in the desired range.

-- 
John Gordon                   A is for Amy, who fell down the stairs
gordon at panix.com              B is for Basil, assaulted by bears
                                -- Edward Gorey, "The Gashlycrumb Tinies"




More information about the Python-list mailing list