def dianzan(url, is_proxy): user_list = dbComponent.get_login_user(2, 10) for user in user_list: try: driver = driverUtil.create_driver(is_proxy, False) driver.get(url) driverUtil.init_cookies(driver, user.cookies) driver.get("https://www.zhihu.com/") url_token_json = driver.find_element_by_css_selector("[data-zop-usertoken]").get_attribute( "data-zop-usertoken") url_token = json.loads(url_token_json)["urlToken"] homepage = "https://www.zhihu.com/people/" + url_token driver.get(url) question_content = driver.find_element_by_css_selector(".QuestionAnswer-content") button = question_content.find_element_by_css_selector(".VoteButton--up") if "is-active" not in button.get_attribute("class"): driver.implicitly_wait(1) if driverUtil.contains(driver, "ContentItem-more"): driver.find_element_by_css_selector(".ContentItem-more").click() button.click() time.sleep(10) driver.get_screenshot_as_file("/Users/youzhihao/Downloads/snapshot/" + str(user.id) + "-snap.png") driver.get(homepage) driver.get_screenshot_as_file("/Users/youzhihao/Downloads/snapshot/" + str(user.id) + "-home.png") except Exception as e: print(user.id, e) finally: driver.quit() print(homepage) time.sleep(10)
def yanghao(): user_list = dbComponent.get_login_user(2, 2000) driver = driverUtil.create_driver(False, True) home_page_list = [] num = 0 for user in user_list: try: driver.get("https://www.zhihu.com/") driverUtil.init_cookies(driver, user.cookies) driver.get("https://www.zhihu.com/") url_token_json = driver.find_element_by_css_selector("[data-zop-usertoken]").get_attribute( "data-zop-usertoken") url_token = json.loads(url_token_json)["urlToken"] if url_token == 'urlToken': dbComponent.delete_cookies(user.id) else: num += 1 home_page_list.append("https://www.zhihu.com/people/" + url_token) print(num) except Exception as e: dbComponent.delete_cookies(user.id) print("账号异常:", user.id) finally: driver.delete_all_cookies() time.sleep(5) for home_page in home_page_list: print(home_page) print("totalNum:", num)
def login_douban(is_proxy): user_list = dbComponent.get_un_login_user(1) for user in user_list: driver = driverUtil.create_driver(is_proxy, False) driver.get("https://accounts.douban.com/login") account = driver.find_element(By.ID, "email") account.send_keys(user.name) remember = driver.find_element(By.ID, "remember") remember.click() while True: submit_buttom = None try: driver.implicitly_wait(1) submit_buttom = driver.find_element(By.NAME, "login") password = driver.find_element(By.ID, "password") password.send_keys(user.password) captcha_field = driver.find_element(By.ID, "captcha_field") captcha_field.send_keys(input("输入验证码:")) submit_buttom.submit() if driver.current_url.find( "https://accounts.douban.com/login") == -1: break except Exception as e: submit_buttom.submit() if driver.current_url.find( "https://accounts.douban.com/login") == -1: break print(e) cookies = driver.get_cookies() # 增加过期时间 for cookie in cookies: cookie['expiry'] = time.time() + 60 * 60 * 24 * 365 * 10 dbComponent.save_cookies(user.id, cookies) driver.delete_all_cookies() driver.close()
def init_new(): user_list = dbComponent.get_new_user(2) driver = driverUtil.create_driver(False, False) for user in user_list: try: driver.get("https://www.zhihu.com/") driverUtil.init_cookies(driver, user.cookies) driver.get("https://www.zhihu.com/") input("等待:") cookies = driver.get_cookies() dbComponent.save_cookies(user.id, cookies) dbComponent.update_isNew(user.id) except Exception as e: print(e, user.id) finally: driver.delete_all_cookies()
def login(is_proxy): user_list = dbComponent.get_un_login_user(2) driver = driverUtil.create_driver(is_proxy, False) fail_id_list = [] for user in user_list: driver.get("https://www.zhihu.com/") driver.find_element_by_css_selector('.SignContainer-switch span').click() driver.find_element_by_css_selector('[name=username]').send_keys(user.name) driver.find_element_by_css_selector('[name=password]').send_keys(user.password) key = input("输入成功或失败:") if key == 'n' or key == 'N': driver.delete_all_cookies() fail_id_list.append(user.id) print(user.id) else: # 增加过期时间 cookies = driver.get_cookies() dbComponent.save_cookies(user.id, cookies) driver.delete_all_cookies() print(fail_id_list)
def zhihu_register(nickname_list): while True: try: driver = driverUtil.create_driver(True, False) code = 'not_receive' for i in range(3): driver.get("https://www.zhihu.com/signup") mobile = proxyUtil.get_mobile() driver.find_element(By.NAME, "phoneNo").clear() driver.find_element(By.NAME, "phoneNo").send_keys(mobile) driver.find_element(By.CLASS_NAME, 'CountingDownButton').click() time.sleep(2) if not driverUtil.contains(driver, '.SignFlowInput-errorMask span'): for i in range(3): time.sleep(20) code = proxyUtil.get_code(mobile) if code != 'not_receive': break if code != 'not_receive': break code = re.findall("\d{6}", code)[0] driver.find_element(By.CSS_SELECTOR, '.SignFlow-smsInput input').send_keys(code) driver.find_element(By.CLASS_NAME, 'Register-submitButton').click() driverUtil.wait(driver, '[name=fullname]', 30) driverUtil.wait(driver, '[type=password]', 30) driverUtil.wait(driver, '[type=submit]', 30) time.sleep(10) password = create_password(8) nickname = nickname_list.pop() driver.find_element(By.CSS_SELECTOR, '[name=fullname]').send_keys(nickname) driver.find_element(By.CSS_SELECTOR, '[name=password]').send_keys(password) driver.find_element(By.CSS_SELECTOR, '[type=submit]').click() time.sleep(10) print('mobile', mobile) print('password', password) dbComponent.add_user_and_cookies(mobile, password, 2, driver.get_cookies()) except Exception as e: print(e) finally: driver.quit()
import time import src.util.driverUtil as driverUtil from src.util import dbComponent user = dbComponent.get_login_user_by_id(39) driver = driverUtil.create_driver(False, False) driver.get("https://www.zhihu.com/") for cookie in user.cookies: cookie['expiry'] = time.time() + 60 * 60 * 24 * 365 * 10 driver.add_cookie(cookie) dbComponent.save_cookies(39, user.cookies) driver.get("https://www.zhihu.com/") input("wait")