コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
ファイル: login.py プロジェクト: xpylq/automation
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()
コード例 #4
0
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()
コード例 #5
0
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)
コード例 #6
0
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()
コード例 #7
0
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")