🛫第一种方式
实现思路
模拟真人登陆4399的操作
- 打开4399网址
- 点击登录
- 定位到新的iframe登陆窗口
- 输入4399账号
- 输入4399密码
- 点击iframe登录
使用selenium库,首次使用需要绑定浏览器配置
-
安装selenium
pip install selenium
-
打开chrome 输入 “chrome://version/” 查看chrome版本
-
下载对应版本的谷chrome 驱动——下载网址
-
把下载好的chrome 驱动,放在python安装根目录
-
这样初始环境我们就配置好了
代码
from selenium import webdriver """selenium 模拟登陆4399""" # 实例化浏览器对象 driver = webdriver.Chrome() # 目标url driver.get('http://www.4399.com/') # 模拟点击 driver.find_element_by_xpath('//*[@id="login_tologin"]').click() # 新界面需要提前进入 driver.switch_to.frame('popup_login_frame') # 账号 密码输入 driver.find_element_by_xpath('//*[@id="username"]').send_keys('4399账号') driver.find_element_by_xpath('//*[@id="j-password"]').send_keys('4399密码') # 登陆选择 driver.find_element_by_xpath('//*[@id="login_form"]/fieldset/div[5]/input').click()
🚈第二种方式
直接爬虫用requests库实现
安装requests
pip install requests
通过抓包的方式提交信息
把登陆后的页面保存为html文件
代码
import requests #模拟登陆4399 成功 一定要灵活运用session()这个好东西 #这是我们要提交的表单 data={ 'loginFrom':'uframe', 'postLoginHandler':'default', 'layoutSelfAdapting':'true', 'externalLogin':'qq', 'displayMode':'popup', 'layout':'vertical', 'appId':'www_home', 'mainDivId':'popup_login_div', 'includeFcmInfo':'false', 'userNameLabel':'4399用户名', 'userNameTip':'请输入4399用户名', 'welcomeTip':'欢迎回到4399', 'username':'你的4399账号', # 需要修改,填写自己的4399账号 'password':'你的4399密码' # 需要修改,填写自己的4399密码 } headers={ 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' } url='http://ptlogin.4399.com/ptlogin/login.do?v=1' session=requests.Session() res=session.post(url=url,data=data,headers=headers) res2=session.get(url='http://u.4399.com/user/info',headers=headers) #成功登陆以后,查看我们的用户数据 # 这里把我们的请求结果保存到文件 f=open('4399.html','wb') f.write(res2.content) f.close()