吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7186|回复: 29
收起左侧

[Python 转载] Python+selenium+Chrome模拟登录du娘

  [复制链接]
Dmail 发表于 2019-1-8 04:14
用js去模拟人去操作哈,点击页面然后输入账号密码,底层都是调的包,没啥技术含量的..深夜打扰,告辞! 爱心.jpg
安装selenium模块
windows系统在控制台下输入下面代码执行
pip install selenium

测试如图:
QQ图片20190108041007.png

代码如下:
[Python] 纯文本查看 复制代码
'''
文件名:L13.py
作者:小饭团
创建时间:2019年1月8日03:31:44
文件描述:登录百度
'''
#-*- coding:UTF-8 -*-
#导入模块
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time
# 无界面模式
def ChromeDriverNOBrowser():
   chrome_options = Options()
   chrome_options.add_argument('--headless')
   chrome_options.add_argument('--disable-gpu')
   #64位系统的浏览器一定要加上下面的这句话
   chrome_options.add_argument('--no-sandbox')
   driverChrome = webdriver.Chrome(chrome_options=chrome_options)
   '''
   driverChrome.get('http://www.baidu.com')
   print(driverChrome.title)
   '''
   return driverChrome
 
# 有界面的就简单了
def ChromeDriverBrowser():
	chrome_options = Options()
	#64位系统的浏览器一定要加上下面的这句话
	chrome_options.add_argument('--no-sandbox')
	driverChrome = webdriver.Chrome(chrome_options=chrome_options)
	#driverChrome.get('http://www.baidu.com')
	#print(driverChrome.title)
	return driverChrome 

def loginBaidu(userName,passWord):
	driver=ChromeDriverBrowser()
	#访问百度
	driver.get('https://www.baidu.com')
	#开始尝试打开登录窗口,执行js点击登录按钮
	js='document.querySelector(\'#u1 > a.lb\').click()'
	driver.execute_script(js)
	#给1秒加载时间
	time.sleep(1)
	#初次判断登录窗口是否打开
	pList=driver.find_elements_by_xpath('//*[@id="pass_phoenix_btn"]/ul/li[1]/a')
	PListLength=len(pList)
	print(PListLength)
	#如果未登录窗口未显示,进入判断窗口是否打开的循环
	while PListLength==0:
		#判断是否打开登录界面,如果PListLength为0则为还没有打开
		pList=driver.find_elements_by_xpath('//*[@id="pass_phoenix_btn"]/ul/li[1]/a')
		PListLength=len(pList)
		print(PListLength)
		#执行js点击登录按钮
		js='document.querySelector(\'#u1 > a.lb\').click()'
		driver.execute_script(js)
		time.sleep(5)
	#点击使用账号密码登录 
	js='document.querySelector(\'#TANGRAM__PSP_10__footerULoginBtn\').click()'
	driver.execute_script(js)
	#给1秒加载时间
	time.sleep(1)
	#输入账号
	js="document.querySelector('#TANGRAM__PSP_10__userName').value='"+userName+"'"
	driver.execute_script(js)
	#输入密码 #TANGRAM__PSP_10__password
	js="document.querySelector('#TANGRAM__PSP_10__password').value='"+passWord+"'"
	driver.execute_script(js)
	#给1秒加载时间
	time.sleep(1)
	#点击登录 #TANGRAM__PSP_10__submit
	js="document.querySelector('#TANGRAM__PSP_10__submit').click()"
	driver.execute_script(js)
	time.sleep(5)
	driver.quit()


def main():
	loginBaidu('吾爱破解测试专用账号','test12345')
	#密码乱写的所以会提示密码错误之类的,或者要输验证码啥的哈
	
if __name__ == '__main__':
	main()

免费评分

参与人数 3吾爱币 +4 热心值 +3 收起 理由
kyrzy0416 + 1 + 1 用心讨论,共获提升!
99910369 + 1 用心讨论,共获提升!
wushaominkk + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

冥界3大法王 发表于 2019-1-8 08:34
@Dmail
能自己不求人编出来的都不是饭桶。以后各种资源都要和谐。所以不会编程是不行的。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Dmail + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| Dmail 发表于 2019-1-8 14:57
yc19951005 发表于 2019-1-8 11:03
楼主有个问题还望指导一下,就是js的点击事件的绝对路径 应该怎么获取..

用谷歌浏览器审查元素,比如想点击百度。
百度2.png
查找该元素的js方法有两个
document.querySelector()返回找到的第一个元素
document.querySelectorAll()返回元素列表
点击百度的代码如下
document.querySelector('#su').click()
document.querySelectorAll('#su')[0].click()
 楼主| Dmail 发表于 2019-1-8 04:24
本帖最后由 Dmail 于 2019-1-8 04:25 编辑

如果不需要界面的话,将38行的代码替换成
driver=ChromeDriverNOBrowser()
即可


最后感觉这个有点像按键精灵哈=。=
super-cucumber 发表于 2019-1-8 05:07
学习一下!
Quincy379 发表于 2019-1-8 08:18
不错不错!!!
Light紫星 发表于 2019-1-8 08:26
感谢分享
myisperfect 发表于 2019-1-8 08:27
感谢分享学习一下
liuwl123 发表于 2019-1-8 09:01
厉害了楼主
水鸟 发表于 2019-1-8 09:15
sleep感觉不好用,按键精灵的延时比较好用
ruphay 发表于 2019-1-8 09:16
学习一下,这算是自动化脚本了,用途很大,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 14:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表