Revision: 16087
Updated Code
at July 25, 2009 18:12 by bingjian
Updated Code
import re from urllib import urlopen from urllib import urlencode """ Author: [email protected] Date: 2009/07/25 Example Usage: >>> import brightscope >>> o = brightscope.get_directory() >>> brightscope.query_score(o,'southwest') Found Southwest Airlines Co. (3) BrightScope Rating: 86 Found Southwest Electric Company (2) BrightScope Rating: 55 Found Southwestern Energy Company BrightScope Rating: 65 Found Southwest Water Company (2) BrightScope Rating: 66 Found Southwest Gas Corporation BrightScope Rating: 69 Found Southwestern/Great American, Inc. BrightScope Rating: 52 """ home_url = 'http://www.brightscope.com/' rating_base_url = 'http://www.brightscope.com/401k-rating/' directory_url = 'http://www.brightscope.com/ratings/' company_string = '<li ><a href="/401k-rating/(?P<link>.+?)/"[\s]+>(?P<name>.+?)</a></li>' company_pattern = re.compile(company_string,re.MULTILINE) top_company_string = '<li class="top.+?"><a href="/401k-rating/(?P<link>.+?)/"[\s]+title=".+?"[\s]+>(?P<name>.+?)</a></li>' top_company_pattern = re.compile(top_company_string,re.MULTILINE) score_string = '<span id="your_plan_rating">(?P<score>[0-9]+)</span>' score_pattern = re.compile(score_string) amp_pattern = re.compile(r'&') prime_pattern = re.compile(r''') def get_directory(): doc = urlopen(directory_url).read() res = {} patterns = [company_pattern, top_company_pattern] for pattern in patterns: o = pattern.finditer(doc) for item in o: link, company = item.groups() amp = amp_pattern.search(company) if amp: company = amp_pattern.sub('&',company) prime = prime_pattern.search(company) if prime: company = prime_pattern.sub("'",company) res[company] = link return res def query_score(directory, key): for company in directory: if key.lower() in company.lower(): print "Found %s"%company url = rating_base_url + directory[company] doc = urlopen(url).read() o = score_pattern.search(doc) if o: print "BrightScope Rating: %d"%int(o.groups()[0])
Revision: 16086
Updated Code
at July 25, 2009 18:03 by bingjian
Updated Code
import re import string from urllib import urlopen from urllib import urlencode """ Author: [email protected] Date: 2009/07/25 Example Usage: >>> import brightscope >>> o = brightscope.get_directory() >>> brightscope.query_score(o,'southwest') Found Southwest Airlines Co. (3) BrightScope Rating: 86 Found Southwest Electric Company (2) BrightScope Rating: 55 Found Southwestern Energy Company BrightScope Rating: 65 Found Southwest Water Company (2) BrightScope Rating: 66 Found Southwest Gas Corporation BrightScope Rating: 69 Found Southwestern/Great American, Inc. BrightScope Rating: 52 """ home_url = 'http://www.brightscope.com/' rating_base_url = 'http://www.brightscope.com/401k-rating/' directory_url = 'http://www.brightscope.com/ratings/' company_string = '<li ><a href="/401k-rating/(?P<link>.+?)/"[\s]+>(?P<name>.+?)</a></li>' company_pattern = re.compile(company_string) top_company_string = '<li class="top.+?"><a href="/401k-rating/(?P<link>.+?)/"[\s]+title=".+?"[\s]+>(?P<name>.+?)</a></li>' top_company_pattern = re.compile(top_company_string,re.MULTILINE) score_string = '<span id="your_plan_rating">(?P<score>[0-9]+)</span>' score_pattern = re.compile(score_string) amp_pattern = re.compile(r'&') prime_pattern = re.compile(r''') def get_directory(): doc = urlopen(directory_url).read() res = {} patterns = [company_pattern, top_company_pattern] for pattern in patterns: o = pattern.finditer(doc) for item in o: link, company = item.groups() amp = amp_pattern.search(company) if amp: company = amp_pattern.sub('&',company) prime = prime_pattern.search(company) if prime: company = prime_pattern.sub("'",company) res[company] = link return res def query_score(directory, key): for company in directory: if key.lower() in company.lower(): print "Found %s"%company url = rating_base_url + directory[company] doc = urlopen(url).read() o = score_pattern.search(doc) if o: print "BrightScope Rating: %d"%int(o.groups()[0])
Revision: 16085
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 25, 2009 17:54 by bingjian
Initial Code
import re import string from urllib import urlopen from urllib import urlencode home_url = 'http://www.brightscope.com/' rating_base_url = 'http://www.brightscope.com/401k-rating/' directory_url = 'http://www.brightscope.com/ratings/' company_string = '<li ><a href="/401k-rating/(?P<link>.+?)/"[\s]+>(?P<name>.+?)</a></li>' company_pattern = re.compile(company_string) top_company_string = '<li class="top.+?"><a href="/401k-rating/(?P<link>.+?)/"[\s]+title=".+?"[\s]+>(?P<name>.+?)</a></li>' top_company_pattern = re.compile(top_company_string,re.MULTILINE) score_string = '<span id="your_plan_rating">(?P<score>[0-9]+)</span>' score_pattern = re.compile(score_string) amp_pattern = re.compile(r'&') prime_pattern = re.compile(r''') def get_directory(): doc = urlopen(directory_url).read() res = {} patterns = [company_pattern, top_company_pattern] for pattern in patterns: o = pattern.finditer(doc) for item in o: link, company = item.groups() amp = amp_pattern.search(company) if amp: company = amp_pattern.sub('&',company) prime = prime_pattern.search(company) if prime: company = prime_pattern.sub("'",company) res[company] = link return res def query_score(directory, key): for company in directory: if key.lower() in company.lower(): print "Found %s"%company url = rating_base_url + directory[company] doc = urlopen(url).read() o = score_pattern.search(doc) if o: print "BrightScope Rating: %d"%int(o.groups()[0])
Initial URL
http://www.brightscope.com
Initial Description
Initial Title
Look Up a Company's 401k Plan Rating from BrightScope
Initial Tags
url
Initial Language
Python