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

C

Cory Mottice

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>&deg;</span></strong><span class="low"><span>Lo</span> 56<span>&deg;</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!
 
J

John Gordon

In said:
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>&deg;</span></strong><span class="low"><span>Lo</span> 56<span>&deg;</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.
 
D

Dave Angel

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>&deg;</span></strong><span class="low"><span>Lo</span> 56<span>&deg;</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!

Since no integer is both >=94 and <=37, you'd never have to worry about
it. But assuming there's a typo there,

temp = lines[line_number + 4.........
if 94 <= int(temp) <= 37:
self.high0 = temp
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,981
Messages
2,570,187
Members
46,729
Latest member
ScarlettJe

Latest Threads

Top