python 利用PhantomJS + selenium 实现爬虫机制滑动验证

PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。

PhantomJS官方地址:http://phantomjs.org/

导入selenium库

from selenium import webdriver

 加载PhantomJS

driver = webdriver.PhantomJS('xxx/xxx/phantomjs.exe')
COON = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    passwd='root',
    db='',
    charset='utf8')

# 火狐
# driver = webdriver.Firefox()

# PhantomJS
driver = webdriver.PhantomJS('C:/Users/phantomjs-2.0.0-windows/bin/phantomjs.exe')

def post_login():
    '''开启浏览器'''
    driver.current_url
    login_url = 'https://www.qichacha.com/user_login'
    print("登录!!!!!!!:" + login_url + "!!!!!!!!!!!!")
    driver.get(login_url)
    driver.maximize_window() #放大
    get_page()

def get_page():
    time.sleep(0.5)
    driver.find_elements_by_id("normalLogin")[0].click()
    #print(driver.find_elements_by_id("nameNormal")[0].find_elements_by_css_selector('input[placeholder="请输入手机号码"]'))
    driver.find_elements_by_css_selector('input[placeholder="请输入手机号码"]')[0].send_keys("")

    driver.find_elements_by_css_selector('input[placeholder="请输入密码"]')[0].send_keys("")

    button = driver.find_element_by_class_name("nc_bg")  # 获取滑动按钮

    ActionChains(driver).click_and_hold(button).perform() # 鼠标点击不松开

    ActionChains(driver).move_by_offset(xoffset=308, yoffset=0).perform() #将按钮滑至最右

    ActionChains(driver).release(button).perform()
    time.sleep(3)
    driver.current_window_handle  # 新弹出的窗口
    driver.save_screenshot('D:\img.png')

def hello():
    print(u'定时器程序执行:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

    post_login()

hello()

猜你喜欢

转载自blog.csdn.net/weixin_40902527/article/details/85770750