Ejemplo n.º 1
0
def main(url):
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--start-maximized')
    browser = webdriver.Chrome(executable_path='./driver/chromedriver.exe',
                               options=chrome_options)
    browser.get(url)
    slider = WebDriverWait(browser, 10).until(
        EC.element_to_be_clickable(
            (By.CSS_SELECTOR,
             "#gc-box > div > div.gt_slider > div.gt_slider_knob.gt_show")))
    username = browser.find_element_by_id("login-username")
    username.send_keys('18956436295')
    password = browser.find_element_by_id("login-passwd")
    password.send_keys('abcd123456')
    soup = BeautifulSoup(browser.page_source, 'lxml')
    gt_cut_bg_slice = soup.find_all(class_='gt_cut_bg_slice')
    gt_cut_fullbg_slice = soup.find_all(class_='gt_cut_fullbg_slice')
    gap_image_url = re.findall(r'background-image:\surl\("(.*?)"\)',
                               gt_cut_bg_slice[0].get('style'))[0].replace(
                                   'webp', 'jpg')
    full_image_url = re.findall(
        r'background-image:\surl\("(.*?)"\)',
        gt_cut_fullbg_slice[0].get('style'))[0].replace('webp', 'jpg')
    gap_image = Image.open(BytesIO(requests.get(gap_image_url).content))
    full_image = Image.open(BytesIO(requests.get(full_image_url).content))
    gap_image_loc_list, full_image_loc_list = getRightPositions(
        gt_cut_bg_slice, gt_cut_fullbg_slice)
    gap_image = reorganImage(gap_image, gap_image_loc_list)
    full_image = reorganImage(full_image, full_image_loc_list)
    gap_image.save('1.jpg')
    full_image.save('2.jpg')
    distance = getGapOffset(gap_image, full_image)
    tracks = Tracks.getTracks(int(distance * 0.95), 12, 3)
    moveToGap(browser, slider, tracks)
    time.sleep(2)
Ejemplo n.º 2
0
def main(url):

    browser = webdriver.Chrome()
    # 访问登录页面
    browser.get(url)
    # 等待滑块出现
    slider = WebDriverWait(browser, 10).until(
        EC.element_to_be_clickable(
            (By.CSS_SELECTOR,
             "#gc-box > div > div.gt_slider > div.gt_slider_knob.gt_show")))
    # 随便填个账号密码
    username = browser.find_element_by_id("login-username")
    username.send_keys('1234567')
    password = browser.find_element_by_id("login-passwd")
    password.send_keys('7654321')
    # 找验证码图片
    soup = BeautifulSoup(browser.page_source, 'lxml')
    gt_cut_bg_slice = soup.find_all(class_='gt_cut_bg_slice')
    gt_cut_fullbg_slice = soup.find_all(class_='gt_cut_fullbg_slice')

    gap_image_url = re.findall(r'background-image:\surl\("(.*?)"\)',
                               gt_cut_bg_slice[0].get('style'))[0].replace(
                                   'webp', 'jpg')
    full_image_url = re.findall(
        r'background-image:\surl\("(.*?)"\)',
        gt_cut_fullbg_slice[0].get('style'))[0].replace('webp', 'jpg')
    print(gt_cut_bg_slice)
    print(gt_cut_fullbg_slice)
    print(gap_image_url)
    print(full_image_url)

    # --带残缺块的
    gap_image = Image.open(BytesIO(requests.get(gap_image_url).content))
    # --完整的
    full_image = Image.open(BytesIO(requests.get(full_image_url).content))
    # 获取图像块正确的位置
    gap_image_loc_list, full_image_loc_list = getRightPositions(
        gt_cut_bg_slice, gt_cut_fullbg_slice)
    # 根据位置重新拼接
    gap_image = reorganImage(gap_image, gap_image_loc_list)
    full_image = reorganImage(full_image, full_image_loc_list)
    gap_image.save('1.jpg')
    full_image.save('2.jpg')

    # 计算偏移量
    distance = getGapOffset(gap_image, full_image)
    # 获取轨迹
    tracks = Tracks.getTracks(int(distance * 0.95), 12, 3)
    print(tracks)
    # 模拟滑动
    moveToGap(browser, slider, tracks)
    time.sleep(2)