I'll do it for one of the companies. But I want your firm promise that you won't tell anyone that I've showed you how to do it.
Get a copy of the HTML for the page and save it locally.
>>> import urllib.request
>>> import re
>>> url = 'https://finance.yahoo.com/quote/AAPL/?p=AAPL'
>>> htmlfile = urllib.request.urlopen(url)
>>> htmltext = htmlfile.read()
>>> open('temp.htm', 'w').write(str(htmltext))
533900
Examine the page, and copy-paste the item you want to be able to identify in this and similar pages. Put it in a comment for reference.
>>> # <span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="35"><!-- react-text: 36 -->161.38<
Save it in a variable, say, exp
.
>>> exp = '<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="35"><!-- react-text: 36 -->161.38<'
Verify that there are no multiple blank characters in the string. If there are then replace the entire strings of blanks with \s+
>>> exp.find(' ')
-1
Prefix each of the characters in the string that are significant to regex with single '\' characters.
>>> re.sub(r'[().]', lambda m: '\\'+m.group(), exp)
'<span class="Trsdu\\(0\\.3s\\) Fw\\(b\\) Fz\\(36px\\) Mb\\(-4px\\) D\\(ib\\)" data-reactid="35"><!-- react-text: 36 -->161\\.38<'
Display the result and examine it.
>>> regex = '<span class="Trsdu\\(0\\.3s\\) Fw\\(b\\) Fz\\(36px\\) Mb\\(-4px\\) D\\(ib\\)" data-reactid="35"><!-- react-text: 36 -->([^<]+)<'
Use the regex to look for the target item.
>>> re.findall(regex, str(htmltext))
['161.38']