Example #1
0
	def getCode(driver):
		# 保存浏览器当前页面
		driver.save_screenshot("page.png")

		# 从页面中截取验证码
		vcode = driver.find_element_by_xpath("//*[@id='app']/div/div/div/div[3]/form/div[3]/div/div[2]/img")

		# 1、获取验证码上下左右边界左边
		loc = vcode.location
		print(loc)
		size = vcode.size
		print(size)
		left = loc['x'] * 2
		top = loc['y'] * 2
		right = (loc['x'] + size['width']) * 2
		button = (loc['y'] + size['height']) * 2

		# 截取页面中的验证码
		page_pic = Image.open('page.png')
		# 进行截图:参数时一个元组(left,top,right,button)
		v_code_pic = page_pic.crop((left, top, right, button))

		v_code_pic.save('yzm.png')

		# 利用超级鹰识别验证码中的内容,每次10分
		yz = Chaojiying(username='******', password='******', soft_id='901845')

		with open('yzm.png', 'rb')as f:
			pic = f.read()

		# 得到验证码识别的结果
		result = yz.post_pic(pic, codetype='1004')['pic_str']
		return result
Example #2
0
 def __init__(self):
     self.url = 'http://admin.touclick.com/login.html'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     self.email = EMAIL
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID)
 def __init__(self):
     self.url = 'https://passport.bilibili.com/login'
     self.browser = webdriver.Firefox()
     self.wait = WebDriverWait(self.browser, 20)
     self.phone = PHONE
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #4
0
 def __init__(self):
     self.url = 'https://kyfw.12306.cn/otn/login/init'
     self.browser = webdriver.Chrome(r"E:\myplugins\chromedriver.exe")
     self.wait = WebDriverWait(self.browser, 20)
     self.email = EMAIL
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #5
0
 def __init__(self):
     self.url = 'https://kyfw.12306.cn/otn/resources/login.html'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     # self.email = EMAIL
     # self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #6
0
 def __init__(self):
     self.url = 'https://ostec.uestc.edu.cn/authcas/login?service=http://202.115.16.61/eems/Login/doLogin'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     self.username = USERNAME
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #7
0
    def __init__(self, username, password):

        self.url = 'https://passport.weibo.cn/signin/login'
        self.browser = webdriver.Chrome(chrome_options=chrome_options)
        self.wait = WebDriverWait(self.browser, 20)
        self.phone = username
        self.password = password
        self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID)
Example #8
0
 def __init__(self):
     self.url = 'https://passport.douyu.com/member/login?'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     self.email = EMAIL
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #9
0
 def __init__(self):
     self.url = 'https://captcha3.scrape.cuiqingcai.com/'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     self.username = USERNAME
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #10
0
 def __init__(self):
     self.url = 'https://login.flyme.cn'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     self.account = ACCOUNT
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #11
0
def login():
    '''
    微博的登陆
    :return:
    '''
    driver = webdriver.Chrome()
    try:
        driver.maximize_window()
        # 加载登录页面
        url = 'http://www.weibo.com/login.php'
        driver.get(url)
        time.sleep(2)
        print('输入用户名...')
        elem_user = driver.find_element_by_id("loginname")
        elem_user.clear()
        elem_user.send_keys(loginname)
        time.sleep(2)
        print('输入密码...')
        elem_pwd = driver.find_element_by_name("password")
        elem_pwd.clear()
        elem_pwd.send_keys(password)
        time.sleep(3)
        checkCode = driver.find_element_by_xpath(
            '//*[@id="pl_login_form"]/div/div[3]/div[3]/div/input')
        driver.save_screenshot('./images/weibo.png')
        img = driver.find_element_by_xpath(
            '//*[@id="pl_login_form"]/div/div[3]/div[3]/a/img')
        left = img.location['x']  # 验证码图片左上角横坐标
        top = img.location['y']  # 验证码图片左上角纵坐标
        right = left + img.size['width']  # 验证码图片右下角横坐标
        bottom = top + img.size['height']  # 验证码图片右下角纵坐标
        im = Image.open('./images/weibo.png')
        im_crop = im.crop(
            (left, top, right, bottom))  # 这个im_crop就是从整个页面截图中再截出来的验证码的图片
        im_crop.save('./images/zrecaptchar.png')

        chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                CHAOJIYING_SOFT_ID)
        # 识别验证码
        bytes_array = BytesIO()
        im_crop.save(bytes_array, format='PNG')
        strcode = chaojiying.post_pic(bytes_array.getvalue(), CHAOJIYING_KIND)
        print(strcode)
        print(strcode['pic_str'])

        checkCode.send_keys(strcode['pic_str'])

        print('登陆微博...')
        '//*[@id="pl_login_form"]/div/div[3]/div[6]/a'
        login_btn = driver.find_element_by_xpath(
            '//*[@id="pl_login_form"]/div/div[3]/div[6]/a')
        login_btn.click()
        print('已经点击')
        time.sleep(10)
        print(driver.current_url)
        driver.quit()
    except Exception as e:
        print('login error.')
Example #12
0
 def __init__(self):
     self._url = 'https://kyfw.12306.cn/otn/login/init'
     self._browser = webdriver.Chrome()
     self._wait = WebDriverWait(self._browser, 20)
     self._username = USERNAME
     self._password = PASSWORD
     self._chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                   CHAOJIYING_SOFT_ID)
     self._pic_id = None
Example #13
0
 def __init__(self):
     self.url = 'https://kyfw.12306.cn/otn/login/init'
     self.browser = webdriver.Chrome()
     # self.browser.set_window_size(1920, 1080)
     self.wait = WebDriverWait(self.browser, 20)
     self.username = USERNAME
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #14
0
 def __init__(self, username, passwd):
     self.url = 'https://passport.bilibili.com/login'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 100)
     self.BORDER = 31
     self.passwd = passwd
     self.username = username
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
Example #15
0
 def __init__(self, params):
     self.url = 'http://www.baidu.com'
     self.KeyUrl = 'https://ticket.urbtix.hk/internet/zh_TW/eventDetail/38663'
     self.browser = webdriver.Chrome()
     # self.browser_headless = True
     self.wait = WebDriverWait(self.browser, 20)
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID)
     # self.pool = redis.ConnectionPool(host='47.56.66.23', password='******', port=6379, db=0, max_connections=2)
     # self.red = redis.Redis(connection_pool=self.pool)
     self.params = params
Example #16
0
 def __init__(self):
     """
     初始化
     """
     self.url = URL
     self.driver = webdriver.Chrome()  # 声明浏览器对象
     self.wait = WebDriverWait(self.driver, 5)  # 设置显式等待5秒
     self.user_phone = USER_PHONENUMBER  # 简书账号
     self.password = PASSWORD  # 密码
     self.chaojiying = Chaojiying(CHAIJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAIJIYING_SOFT_ID)  # 创建超级鹰对象
Example #17
0
 def __init__(self):
     self.url = 'https://fishc.com.cn/forum-173-1.html'
     self.option = ChromeOptions()
     self.option.add_experimental_option('excludeSwitches',
                                         ['enable-automation'])
     self.browser = Chrome(options=self.option)
     self.wait = WebDriverWait(self.browser, 20)
     self.email = EMAIL
     self.password = PASSWORD
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
 def __init__(self):
     """
     初始化数据
     """
     self.url = 'https://kyfw.12306.cn/otn/login/init'
     self.browser = webdriver.Chrome()
     self.wait = WebDriverWait(self.browser, 20)
     self.username = '******'
     self.password = '******'
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOLD_ID)
Example #19
0
 def __init__(self, username, password, browser):
     self.url = 'https://passport.weibo.cn/signin/login?entry=mweibo&r=https://m.weibo.cn/'
     self.browser = browser
     self.wait = WebDriverWait(self.browser, 20)
     self.username = username
     self.password = password
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAOJIYING_SOFT_ID)
     self.scale = 1.25
     self.kind = CHAOJIYING_KIND_CLICK
     self.font = ImageFont.truetype("msyh.ttc", 28)
     self.sliver_text = "请点击阴影凹槽左上角"
Example #20
0
    def __init__(self, driver, class_name, identifying_name):
        """

        :param driver: 浏览器对象
        :param class_name: 图片元素的class属性名称
        :param identifying_name: 判断是否登陆成功的验证信息
        """
        self.browser = driver
        self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                     CHAOJIYING_SOFT_ID)
        self.name = class_name
        self.wait = WebDriverWait(self.browser, 15)
        self.identifying_name = identifying_name
Example #21
0
 def __init__(self, code=None):
     """
     初始化注册信息
     :param code: 验证码
     """
     self.url = URL  # 目标站点
     self.browser = webdriver.Chrome()  # 声明浏览器对象
     self.browser.get(self.url)  # 访问网页
     self.wait = WebDriverWait(self.browser, 5)  # 显式等待5秒,待节点元素全部加载
     self.username = USERNAME  # 用户名
     self.password = PASSWORD  # 密码
     self.email = EMAIL  # 邮箱
     self.code = code  # 图形验证码
     self.chaojiying = Chaojiying(CHAIJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                  CHAIJIYING_SOFT_ID)  # 创建超级鹰对象
Example #22
0
    def __init__(self):
        self.url = 'https://captcha3.scrape.center/'

        self.username = USERNAME
        self.password = PASSWORD
        self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                                     CHAOJIYING_SOFT_ID)

        self.options = webdriver.ChromeOptions()
        # self.options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 不加载图片,加快访问速度
        self.options.add_experimental_option(
            'excludeSwitches',
            ['enable-automation'])  # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium

        self.options.add_experimental_option('useAutomationExtension', False)

        self.options.add_argument('lang=zh-CN,zh,zh-TW,en-US,en')
        self.options.add_argument(
            'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
        )
        # self.options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')

        self.options.add_argument('--ignore-certificate-errors')
        self.options.add_argument('--ignore-ssl-errors')

        # prefs = {"profile.managed_default_content_settings.images": 2, "webrtc.ip_handling_policy": "disable_non_proxied_udp", "webrtc.multiple_routes_enabled": False, "webrtc.nonproxied_udp_enabled": False}
        prefs = {
            "webrtc.ip_handling_policy": "disable_non_proxied_udp",
            "webrtc.multiple_routes_enabled": False,
            "webrtc.nonproxied_udp_enabled": False
        }

        self.options.add_experimental_option("prefs", prefs)

        # self.options.add_argument('--disable-extensions')
        # self.options.add_experimental_option('excludeSwitches',['ignore-certificate-errors'])
#         self.options.add_argument('--start-maximized')

        self.options.add_argument('disable-blink-features=AutomationControlled'
                                  )  #告诉chrome去掉了webdriver痕迹

        self.browser = webdriver.Chrome(executable_path=chromedriver_path,
                                        options=self.options)
        self.wait = WebDriverWait(self.browser, 20)  #超时时长为10s
Example #23
0
 def pick_code(self):
     time.sleep(3)
     pick_img_label = self.browser.find_element_by_css_selector('img.geetest_item_img')  # 获取点触图片标签
     src = pick_img_label.get_attribute('src')  # 获取点触图片链接
     img_content = requests.get(src).content  # 获取图片二进制内容
     f = BytesIO()
     f.write(img_content)
     img0 = Image.open(f)  # 将图片以文件的形式打开,主要是为了获取图片的大小
     scale = [pick_img_label.size['width'] / img0.size[0],
              pick_img_label.size['height'] / img0.size[1]]  # 获取图片与浏览器该标签大小的比例
     cjy = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID)
     result = cjy.post_pic(img_content, '9005')  # 发送图片并获取结果
     if result['err_no'] == 0:  # 对结果进行分析
         position = result['pic_str'].split('|')  # position = ['110,234','145,247','25,185']
         position = [[int(j) for j in i.split(',')] for i in position]  # position = [[110,234],[145,247],[25,185]]
         for items in position:  # 模拟点击
             ActionChains(self.browser).move_to_element_with_offset(pick_img_label, items[0] * scale[0],
                                                                    items[1] * scale[1]).click().perform()
             time.sleep(1)
         time.sleep(2)
         # 点击登录
         certern_btn = self.browser.find_element_by_css_selector('div.geetest_commit_tip')
         certern_btn.click()
     return cjy, result
Example #24
0
# 构造验证码图片  上下左右的位置
left = loc.get('x')
top = loc.get('y')
right = loc.get('x') + size.get('width')  # 有屏幕缩放比例的 要乘上
buttom = loc.get('y') + size.get('height')  # 有屏幕缩放比例的 要乘上
# 验证码位置
val = (left, top, right, buttom)

# 打开验证码
page_pic = Image.open('page.png')
# 把验证码的位置传进去
code_pic = page_pic.crop(val)
# 保存验证码
code_pic.save('code.png')

# 2、调用第三方的接口来识别验证码
yz = Chaojiying(username="******",
                password='******',
                soft_id="900450")
with open('code.png', 'rb') as f:
    pic = f.read()
# 通过对象调用post_pic 方法,进行图片识别是一个地点类型数据,其中的一个pic_str就是一个识别的结果
result = yz.post_pic(pic, codetype='1004')
print("识别的结果:", result.get('pic_str'))
res = result.get('pic_str')

# 在页面上输入验证码
driver.find_element_by_name('imgtxt').send_keys(res)
# 点击登录
driver.find_element_by_class_name('login_form_input_submit').click()
checkCode = browser.find_element_by_id('txtOldCheckCode')
btnReg = browser.find_element_by_id('ButtonRegister')
user.send_keys('*****@*****.**')
time.sleep(2)
pwd.send_keys('mimamima')
time.sleep(2)
email.send_keys('*****@*****.**')
time.sleep(2)

browser.save_screenshot('./images/zhiwang.png')
img = browser.find_element_by_id('checkcode')
left = img.location['x']  #验证码图片左上角横坐标
top = img.location['y']  #验证码图片左上角纵坐标
right = left + img.size['width']  #验证码图片右下角横坐标
bottom = top + img.size['height']  #验证码图片右下角纵坐标
im = Image.open('./images/zhiwang.png')
im_crop = im.crop((left, top, right, bottom))  #这个im_crop就是从整个页面截图中再截出来的验证码的图片
im_crop.save('./images/zrecaptchar.png')

chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD,
                        CHAOJIYING_SOFT_ID)
# 识别验证码
bytes_array = BytesIO()
im_crop.save(bytes_array, format='PNG')
strcode = chaojiying.post_pic(bytes_array.getvalue(), CHAOJIYING_KIND)
print(strcode)

checkCode.send_keys(strcode['pic_str'])

#模拟点击注册按钮
#btnReg.click()
Example #26
0
def crack():
    # 保存网页截图
    browser.save_screenshot('222.png')

    # 获取 验证码确定按钮
    button = browser.find_element_by_xpath(
        xpath='//div[@class="geetest_panel"]/a/div')

    #  获取 验证码图片的 位置信息
    img1 = browser.find_element_by_xpath(
        xpath='//div[@class="geetest_widget"]')
    location = img1.location
    size = img1.size
    top, bottom, left, right = location['y'], location['y'] + size[
        'height'], location['x'], location['x'] + size['width']
    print('图片的宽:', img1.size['width'])
    print(top, bottom, left, right)

    #  根据获取的验证码位置信息和网页图片  对验证码图片进行裁剪 保存
    img_1 = Image.open('222.png')
    capcha1 = img_1.crop((left, top, right, bottom - 54))
    capcha1.save('tu1-1.png')

    # 接入超级鹰 API 获取图片中的一些参数 (返回的是一个字典)
    cjy = Chaojiying('zhoufang', '000000', '898324')
    im = open('tu1-1.png', 'rb').read()
    content = cjy.PostPic(im, 9004)
    print(content)
    #  将图片中汉字的坐标位置 提取出来
    positions = content.get('pic_str').split('|')
    locations = [[int(number) for number in group.split(",")]
                 for group in positions]
    print(positions)
    print(locations)

    #  根据获取的坐标信息 模仿鼠标点击验证码图片
    for location1 in locations:
        print(location1)
        ActionChains(browser).move_to_element_with_offset(
            img1, location1[0], location1[1]).click().perform()
        time.sleep(2)
    button.click()
    time.sleep(2)
    # 失败后重试
    lower = browser.find_element_by_xpath(
        '//div[@class="geetest_table_box"]/div[2]').text
    print('判断', lower)
    if '验证成功' in lower:
        print('登录成功')
        time.sleep(3)
    # if lower != '验证失败 请按提示重新操作' and lower != None:
    #     print('登录成功')
    #     time.sleep(3)
    else:
        time.sleep(3)
        print('登录失败')
        # 登录失败后 , 调用 该函数 , 后台 则对该次判断不做扣分处理
        pic_id = content.get('pic_id')
        print('图片id为:', pic_id)
        cjy = Chaojiying('zhoufang', '000000', '898324')
        cjy.ReportError(pic_id)
        crack()
Example #27
0
 def __init__(self):
     self.url = 'https://passport.ctrip.com/user/login?BackUrl=http%3A%2F%2Fwww.ctrip.com%2F#ctm_ref=c_ph_login_buttom'
     self.driver = webdriver.Chrome()
     self.wait = WebDriverWait(self.driver, 20)
     self.chaojiying = Chaojiying(CHAOJIYING_USERNAME, CHAOJIYING_PASSWORD, CHAOJIYING_SOFT_ID)
Example #28
0
print(loc)
size = vcode.size
print(size)
left = loc['x'] * 2
top = loc['y'] * 2
right = (loc['x'] + size['width']) * 2
button = (loc['y'] + size['height']) * 2

# 截取页面中的验证码
page_pic = Image.open('page.png')
# 进行截图:参数时一个元组(left,top,right,button)
v_code_pic = page_pic.crop((left, top, right, button))
v_code_pic.save('yzm.png')

# 识别验证码中的内容
yz = Chaojiying(username='******', password='******', soft_id='901845')

with open('yzm.png', 'rb') as f:
    pic = f.read()

print(pic)
# 得到验证码识别的结果
result = yz.post_pic(pic, codetype='1004')
print('result===')
print(result)
res = result['pic_str']
print('res===' + res)
# 第四步:输入验证码
driver.find_element_by_xpath(
    "//*[@id='app']/div/div/div/div[3]/form/div[3]/div/div[1]/input"
).send_keys(res)
Example #29
0
from PIL import Image
import pytesseract
"""下载验证码图片"""
# 验证码地址
# https://www.renrendai.com/passport/index/captcha?time=1551682134111
# url = "https://www.renrendai.com/passport/index/captcha?time=1551682134111"
url = "http://www.testingedu.com.cn:8000/index.php?m=Home&c=User&a=verify&r=0.8834463023296559"
response = requests.get(url).content

#将图片写入文件
with open('C:\\Users\\Administrator\\Desktop\\rryz.png', 'wb') as f:
    f.write(response)

# '''识别验证码'''
# #第一步:通过内置模块PIL打开文件
# # with open('rryz.png','wb') as f:
# pic = Image.open('C:\\Users\\Administrator\\Desktop\\rryz.png')
# #第二步:识别图片中的内容
# str1 = pytesseract.image_to_string(pic, lang="chi_sim")# 复杂的验证码,直接识别不了(要进行降噪,,,,处理)
# print("验证码识别", str1)

#读取文件内容
with open('C:\\Users\\Administrator\\Desktop\\rryz.png', 'rb') as f:
    pic1 = f.read()
#调用第三方打码平台接口识别验证码
from chaojiying import Chaojiying
yz = Chaojiying(username='******',
                password='******',
                soft_id='904603')
res = yz.post_pic(pic1, 1902)
print(res['pic_str'])