def get_api_token(): client = upwork.Client(os.environ["upkey"], os.environ["upsecret"]) authorize_url = client.auth.get_authorize_url() doc = Node(authorize_url, "url", "chrome") print("Navigating authorize url...") doc.select("#login_username").send_keys(os.getenv("email")) doc.select("#login_password").send_keys(os.getenv("up") + "#u") doc.select("#layout form").submit() print("Navigating token url...") verifier_el = doc.select("#main > div") verifier = first_match("(?<=oauth_verifier=).+", verifier_el.text) oauth_token, oauth_token_secret = client.auth.get_token(verifier) oauth_token = oauth_token.decode("utf-8") oauth_token_secret = oauth_token_secret.decode("utf-8") print(oauth_token, oauth_token_secret) return oauth_token, oauth_token_secret
def get_upwork_job_feed_doc(): doc = Node(upwork_job_feed_url, Provider.PHANTOMJS) doc.select("#login_username").send_keys(os.getenv("email")) doc.select("#login_password").send_keys(os.getenv("up") + "#u") doc.select("#layout > div.container.ng-scope > div > form").el.submit() return doc
import time from gray.common.data_utils import write_entries, time_measure from gray.common.node_utils import Node, Provider doc = Node("https://generalassemb.ly/education", Provider.PHANTOMJS) entries = [] row_els = doc.select_list("#catalog-results > div > *:not(.date-divider)") for row_idx, row_el in enumerate(row_els): start_time = time.time() entry = {} entry["link"] = row_el.select("a").attr("href") details_el = row_el.select(".item-details") entry["title"] = details_el.select(".medium.item-title").text() entry["desc"] = details_el.children(1).text() entry["instructor"] = details_el.select(".instructor").text() entry["series"] = row_el.select(".series-info").text() entry["date"] = row_el.select(".date-details").text() entry["time"] = row_el.select(".date-details").text() entry["topics"] = row_el.select_list("li.topic-icon-item").attrs("title") entry["promo"] = row_el.select_list(".cyber-monday-promo").texts() time_measure(str(row_idx) + " row", start_time, 3) entries.append(entry) write_entries(entries, "generalassembly")