python爬虫---利用selenium进行模拟登录

该模拟登录的具体思路是通过输入用户名、密码以及验证码的方式登录到页面。打印出登录到的html页面查看页面是否是登录成功的页面。
当利用selenium进行模拟登录时方法如下:
from selenium import webdriver
import time
import sys
import pickle
import requests

chrome_driver = 'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe'
sel = webdriver.Chrome(executable_path=chrome_driver)

#登录界面的url
loginurl = '登录界面的url'
sel.get(loginurl)
time.sleep(10)

session = requests.session()
agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
#header的内容在登录界面按f12,network下即可找到其对应的host、Referer。
header = {
    "HOST":"",
    "Referer":"",
    "User-Agent":agent
}

#获取验证码图片,并手动将其输入
def get_captcha():
    import time
    t = str(int(time.time()*1000))
    captcha_url = "xxxxxx"
    t = session.get(captcha_url, headers=header)
    with open("captcha.jpg","wb") as f:
         f.write(t.content)
         f.close()
    from PIL import Image
    try:
        im = Image.open('captcha.jpg')
        im.show()
        im.close()
    except:
        pass
    captcha = input("输入验证码\n>")
    return captcha
try:
    sel.find_element_by_xpath("//*[@id='swy']").send_keys('用户名')
    print('user success!')
except:
    print('user error')

time.sleep(1)

try:
    sel.find_element_by_xpath("//*[@id='swm2']").send_keys('密码')
    print('pw success')
except:
    print('pw error!')
time.sleep(1)
#验证码登录
try:
    sel.find_element_by_xpath("//*[@id='verifyCode']").send_keys(get_captcha())
    print('verifyCode success')
except:
    print('verifyCode error!')
time.sleep(1)


#点击登录页面
try:
    sel.find_element_by_xpath("//*[@id='submit']").click()  # 用click模拟浏览器点击
    print('click success!')

except:
    print('click error!')
time.sleep(3)
print(sel.page_source)
with open('index.html','wb')as f:
    # 存入需要bytes格式  使用.endcode('utf-8)
    f.write(sel.page_source.encode('utf-8'))
sel.close()

用这样方式去登录的时候发现我模拟登录的登录页面验证码所在的url页面的图片是不断变化的,它跟登录页面所出现的验证码图片显示的内容是不一样的因此无法登录到所在的页面。可以通过将get_captcha()函数进行了修改,将登录页面截图成一个图片查看图片内容将验证码输入即可登录到你想登录的页面。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值