def run(): representatives_url = 'https://www.nmlegis.gov/members/Legislator_List?T=R' senators_url = 'https://www.nmlegis.gov/Members/Legislator_List?T=S' rep_sh = state_helper(representatives_url) rep_sh.prepare_soup() rep_links = rep_sh.bs4_helper.get_hrefs_for_a_tag() rep_addrs = [] for link in rep_links: if 'Legislator?' in link: temp_sh = state_helper('https://www.nmlegis.gov/members/' + link) rep_addrs = temp_sh.get_mailto_addresses() for rep_addr in rep_addrs: print(rep_addr) sen_sh = state_helper(senators_url) sen_sh.prepare_soup() sen_links = sen_sh.bs4_helper.get_hrefs_for_a_tag() sen_addrs = [] for link in sen_links: if 'Legislator?' in link: temp_sh = state_helper('https://www.nmlegis.gov/Members/' + link) sen_addrs = temp_sh.get_mailto_addresses() for sen_addr in sen_addrs: print(sen_addr) return (rep_addrs + sen_addrs)
def run(): representatives_url = 'https://www.ilga.gov/house/' senators_url = 'https://www.ilga.gov/senate/' #senators_url defunct rep_sh = state_helper(representatives_url) rep_sh.prepare_soup() links = rep_sh.bs4_helper.get_hrefs_for_a_tag() links = rep_sh.html_helper.get_full_urls_from_hrefs(links) rep_addrs = [] for link in links: if 'MemberID=' in link and 'Rep.asp?' in link: massaged_link = ('https://' + link).replace('./', '/') tmp_rep_sh = state_helper(massaged_link, True) tmp_rep_sh.prepare_soup() texts = tmp_rep_sh.bs4_helper.get_text_for_tds() for text in texts: if '@' in text and len(text) < 70: text = text.split()[-1] rep_addrs.append(text) print(text) return rep_addrs
def run(): representatives_url = 'https://legislature.maine.gov/house/house/MemberProfiles/ListEmail' senators_url = 'https://legislature.maine.gov/senate/senators/9536' #senators_url = 'https://legislature.maine.gov/uploads/visual_edit/130th-senate-member-list-2.xlsx' #senators xlsx file is bunk, does not contain email addresses # the primary link suggests we should get email addresses in the excel file... rep_sh = state_helper(representatives_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_sh = state_helper(senators_url) sen_sh.prepare_soup() sen_links = sen_sh.bs4_helper.get_hrefs_for_a_tag() sen_addrs = [] for link in sen_links: if '/senate/district' in link: temp_sh = state_helper('https://' + sen_sh.html_helper.base_url + link) temp_addrs = temp_sh.get_mailto_addresses() for addr in temp_addrs: sen_addrs.append(addr) print(addr) return (sen_addrs + rep_addrs)
def run(): senators_url = 'https://legislature.ky.gov/Legislators/senate' representatives_url = 'https://legislature.ky.gov/Legislators/house-of-representatives' sen_sh = state_helper(senators_url) sen_sh.prepare_soup() links = sen_sh.bs4_helper.get_hrefs_for_a_tag() sen_addrs = [] for link in links: if '/Legislators/Pages/Legislator-Profile.aspx' in link: massaged_link = 'https://' + sen_sh.html_helper.base_url + link temp_sh = state_helper(massaged_link) temp_sh.prepare_soup() texts = temp_sh.bs4_helper.get_text_for_p_tags() for text in texts: if '@' in text and text[0] != '@': sen_addrs.append(text) print(text) rep_sh = state_helper(representatives_url) rep_sh.prepare_soup() links = rep_sh.bs4_helper.get_hrefs_for_a_tag() rep_addrs = [] for link in links: if '/Legislators/Pages/Legislator-Profile.aspx' in link: massaged_link = 'https://' + rep_sh.html_helper.base_url + link temp_sh = state_helper(massaged_link) temp_sh.prepare_soup() texts = temp_sh.bs4_helper.get_text_for_p_tags() for text in texts: if '@' in text and text[0] != '@': rep_addrs.append(text) print(text) return (rep_addrs + sen_addrs)
def run(): senators_url = 'https://msa.maryland.gov/msa/mdmanual/05sen/html/sene.html' representatives_url = 'https://msa.maryland.gov/msa/mdmanual/06hse/html/hsee.html' sen_sh = state_helper(senators_url) sen_sh.prepare_soup() sen_links = sen_sh.bs4_helper.get_hrefs_for_a_tag() sen_addrs = [] for link in sen_links: if 'mailto:' in link: addr = link.replace('mailto:', '') sen_addrs.append(addr) print(link.replace('mailto:', '')) rep_sh = state_helper(representatives_url) rep_sh.prepare_soup() rep_links = rep_sh.bs4_helper.get_hrefs_for_a_tag() rep_addrs = [] for link in rep_links: if 'mailto:' in link: addr = link.replace('mailto:', '') rep_addrs.append(addr) print(addr) return (sen_addrs + rep_addrs)
def run(): house_xlsx_url = 'https://floridafaf.org/wp-content/uploads/2020/08/House-Contact-List-82020.xlsx' senate_xlsx_url = 'https://floridafaf.org/wp-content/uploads/2020/08/Senate-Contact-List-82020.xlsx' house_sh = state_helper(house_xlsx_url) house_arr = house_sh.parse_xlsx_file_column_by_index(0, 'U', 2) for item in house_arr: print(item) senate_sh = state_helper(senate_xlsx_url) sen_arr = senate_sh.parse_xlsx_file_column_by_index(0, 'U', 2) for item in sen_arr: print(item) return (house_arr + sen_arr)
def run(): senators_url = 'https://legislature.idaho.gov/senate/membership/' representatives_url = 'https://legislature.idaho.gov/house/membership/' rep_sh = state_helper(representatives_url) sen_sh = state_helper(senators_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): representatives_url = 'https://www.house.leg.state.mn.us/members/list' senators_url = 'https://www.senate.mn/members/' sen_sh = state_helper(senators_url) sen_links = sen_sh.get_mailto_addresses() for link in sen_links: print(link) rep_sh = state_helper(representatives_url) rep_links = rep_sh.get_mailto_addresses() for link in rep_links: print(link) return (rep_links + sen_links)
def run(): senators_url = 'https://malegislature.gov/Legislators/Members/Senate' representatives_url = 'https://malegislature.gov/Legislators/Members/House' sen_sh = state_helper(senators_url) sen_links = sen_sh.get_mailto_addresses() for link in sen_links: print(link.replace('mailto:','')) rep_sh = state_helper(representatives_url) rep_links = rep_sh.get_mailto_addresses() for link in rep_links: print(link.replace('mailto:','')) return (sen_links + rep_links)
def run(): senators_url = 'https://senate.michigan.gov/Senatoremaillst.html' representatives_url = 'https://www.house.mi.gov/MHRPublic/frmRepListMilenia.aspx?all=true' sen_sh = state_helper(senators_url) rep_sh = state_helper(representatives_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): senators_url = 'http://www.kslegislature.org/li/b2019_20/chamber/senate/roster/' representatives_url = 'http://www.kslegislature.org/li/b2019_20/chamber/house/roster/' sen_sh = state_helper(senators_url) rep_sh = state_helper(representatives_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): senators_url = 'https://www.capitol.hawaii.gov/members/legislators.aspx?chamber=S' representatives_url = 'https://www.capitol.hawaii.gov/members/legislators.aspx?chamber=H' rep_sh = state_helper(representatives_url) sen_sh = state_helper(senators_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): senators_url = 'https://www.ncleg.gov/Members/MemberInfoReport/S' sen_sh = state_helper(senators_url, True) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr)
def run(): senators_url = 'https://www.leg.state.nv.us/App/Legislator/A/Senate/' representatives_url = 'https://www.leg.state.nv.us/App/Legislator/A/Assembly/' sen_sh = state_helper(senators_url, True) rep_sh = state_helper(representatives_url, True) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): representatives_url = 'http://gencourt.state.nh.us/downloads/Members.txt' senators_url = 'http://gencourt.state.nh.us/Senate/members/senate_roster.aspx' sen_sh = state_helper(senators_url, True) rep_sh = state_helper(representatives_url) rep_addrs = rep_sh.parse_csv_column_by_index(14, "\t") for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): primary_url = 'https://www.legis.iowa.gov/legislators/informationOnLegislators/allLegislators' sh = state_helper(primary_url) sh_addrs = sh.get_mailto_addresses() for addr in sh_addrs: print(addr) return sh_addrs
def run(): primary_url = 'https://www.legis.nd.gov/files/resource/miscellaneous/legislatormergeinformation.xls' sh = state_helper(primary_url) addrs = sh.parse_xls_file_column_by_index(0, 6) for addr in addrs: print(addr) return addrs
def run(): representatives_url = 'https://www.cga.ct.gov/asp/menu/hlist.asp' senators_url = 'https://www.cga.ct.gov/asp/menu/slist.asp' # each of these pages has mail-to links included in primary page rep_sh = state_helper(representatives_url) sen_sh = state_helper(senators_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): representatives_url = 'http://akleg.gov/house.php' senators_url = 'http://akleg.gov/senate.php' # each of these pages has mail-to links included in primary page rep_sh = state_helper(representatives_url) sen_sh = state_helper(senators_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (sen_addrs + rep_addrs)
def run(): primary_url = 'https://leg.mt.gov/legislator-information/csv' sh = state_helper(primary_url) email_addresses = sh.parse_csv_column_by_index(8) for addr in email_addresses: print(addr) return email_addresses
def run(): senators_url = 'https://www.nysenate.gov/senators-committees' representatives_url = 'https://nyassembly.gov/mem/' sen_sh = state_helper(senators_url) sen_sh.prepare_soup() sen_links = sen_sh.bs4_helper.get_hrefs_for_a_tag() for link in sen_links: if '/senators/' in link: temp_sh = state_helper('https://www.nysenate.gov' + link + '/contact') sen_addrs = temp_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) rep_sh = state_helper(representatives_url) rep_addrs = rep_sh.get_mailto_addresses() for addr in rep_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): senators_url = 'http://www.senate.ga.gov/senators/en-US/SenateMembersList.aspx' representatives_url = 'http://www.house.ga.gov/Representatives/en-US/HouseMembersList.aspx' rep_sh = state_helper(representatives_url) rep_sh.prepare_soup() sen_sh = state_helper(senators_url) sen_sh.prepare_soup() sen_links = sen_sh.bs4_helper.get_hrefs_for_a_tag() sen_links = sen_sh.html_helper.get_full_urls_from_hrefs(sen_links) sen_addrs = [] for link in sen_links: if 'Member=' in link: massaged_link = ('http://' + link).replace('./', '/Senators/en-US/') tmp_rep_sh = state_helper(massaged_link) tmp_rep_sh.prepare_soup() links = tmp_rep_sh.bs4_helper.get_hrefs_for_a_tag() for link in links: if 'mailto:' in link: addr = link.replace('mailto:', '') sen_addrs.append(addr) print(addr) rep_links = rep_sh.bs4_helper.get_hrefs_for_a_tag() rep_links = rep_sh.html_helper.get_full_urls_from_hrefs(rep_links) rep_addrs = [] for link in rep_links: if 'Member=' in link: massaged_link = ('http://' + link).replace( './', '/Representatives/en-US/') tmp_rep_sh = state_helper(massaged_link) tmp_rep_sh.prepare_soup() links = tmp_rep_sh.bs4_helper.get_hrefs_for_a_tag() for link in links: if 'mailto:' in link: addr = link.replace('mailto:', '') sen_addrs.append(addr) print(addr) return (rep_addrs + sen_addrs)
def run(): representatives_url = 'https://house.louisiana.gov/H_Reps/H_Reps_Email' senators_url = 'http://senate.la.gov/Senators/Offices.asp' rep_sh = state_helper(representatives_url) rep_sh.prepare_soup() sen_sh = state_helper(senators_url) sen_sh.prepare_soup() rep_texts = rep_sh.bs4_helper.get_text_for_span_tags() rep_addrs = [] for text in rep_texts: if '@' in text: rep_addrs.append(text) print(text) sen_addrs = sen_sh.get_mailto_addresses() for addr in sen_addrs: print(addr) return (rep_addrs + sen_addrs)
def run(): house_democrats_url = 'https://indianahousedemocrats.org/members' house_republicans_url = 'https://www.indianahouserepublicans.com/members/' senate_democrats_url = 'https://www.indianasenatedemocrats.org/senators/' senate_republicans_url = 'https://www.indianasenaterepublicans.com/senators' # house dems do not appear to expose email addresses # senate dems appear to use javascript to populate email address #hd_sh = state_helper(house_democrats_url) #hd_sh.prepare_soup() hr_sh = state_helper(house_republicans_url) hr_sh.prepare_soup() sd_sh = state_helper(senate_democrats_url, True) sd_sh.prepare_soup() sr_sh = state_helper(senate_republicans_url) sr_sh.prepare_soup() hr_links = hr_sh.bs4_helper.get_hrefs_for_class('member-link') hr_addrs = [] for link in hr_links: massaged_link = 'https://' + hr_sh.html_helper.base_url + '/' + link temp_sh = state_helper(massaged_link) temp_sh.prepare_soup() links = temp_sh.bs4_helper.get_hrefs_for_a_tag() for s_link in links: if 'mailto:' in s_link: addr = s_link.replace('mailto:','') hr_addrs.append(addr) print(addr) sd_links = sd_sh.bs4_helper.get_hrefs_for_class('eg-senators-grid-element-24') sd_addrs = [] for link in sd_links: temp_sh = state_helper(link, True) temp_sh.prepare_soup() links = temp_sh.bs4_helper.get_hrefs_for_a_tag() for s_link in links: if 'mailto:' in s_link: addr = s_link.replace('mailto:','') sd_addrs.append(addr) print(addr) sr_links = sr_sh.bs4_helper.get_hrefs_for_a_tags_in_div_by_class('senator-item') sr_addrs = [] for link in sr_links: temp_sh = state_helper('https://' + sr_sh.html_helper.base_url + link) temp_sh.prepare_soup() links = temp_sh.bs4_helper.get_hrefs_for_a_tag() for s_link in links: if 'mailto:' in s_link: addr = s_link.replace('mailto:','') sr_addrs.append(addr) print(addr) return (sr_addrs + sd_addrs + hr_addrs)
def run(): primary_url = 'https://www.arkleg.state.ar.us/Legislators/List' # this url contains both senate and house all_sh = state_helper(primary_url) all_sh.prepare_soup() hrefs = all_sh.bs4_helper.get_hrefs_for_a_tag() addrs = [] for href in hrefs: if 'mailto' in href: if '?' not in href: # preventing capturing webmaster email addr = href.replace('mailto:', '') addrs.append(addr) print(addr) return addrs
def run(): primary_url = 'https://leg.colorado.gov/legislators' # this link contains both house and senate # it is in a data table # to their kudos, they do have an excel output; but ideally this is csv all_sh = state_helper(primary_url) all_sh.prepare_soup() addresses = all_sh.bs4_helper.get_text_for_tds() addrs = [] for address in addresses: if '@' in address: addr = address.strip() addrs.append(addr) print(addr) return addrs
def run(): primary_url = 'https://www.azleg.gov/memberroster/' # I had discovered that the usernames on this page correspond with email addresses # that end in 'azleg.gov' # "The email address is built by combining the legislator's userId and @azleg.gov. For example a legislator with a userId of jjones, would be [email protected]" all_sh = state_helper(primary_url) all_sh.prepare_soup() all_text_for_links = all_sh.bs4_helper.get_text_for_a_tag() addrs = [] for link in all_text_for_links: if 'Email' in link: email = link.replace('Email: ', '').lower() + '@azleg.gov' addrs.append(email) print(email) return addrs
def run(): primary_url = 'https://www.utla.net/resources/contact-your-legislators' # BINGO # with this page we can get all email addresses, including governor # well..... # maybe. the email addresses listed are links, but they feign email address format all_sh = state_helper(primary_url) all_sh.prepare_soup() addresses = all_sh.bs4_helper.get_text_for_strong_in_a_tag() addrs = [] for address in addresses: if 'Expand' not in address: addrs.append(address) print(address) return addrs