Open mtnobody opened 5 years ago
首先将dingding.py中dd_login_status中的drive的参数加个nohead=False 让他显示界面
def dd_login_status(uname, has_dd=False): while True: if has_dd: dname, pwd = load_dingding("./user/{}/dingding".format(uname)) print("读取用户信息成功") else: dname, pwd = get_dd() driver_login = mydriver.Mydriver(noimg=False,nohead=False) login_status = driver_login.dd_login(dname, pwd) if login_status: save_dingding("./user/{}/dingding".format(uname), dname, pwd) cookies = driver_login.get_cookies() break return cookies
将mydriver.py中的等待时间从2秒改成60秒(意思是你有60秒的时间输入验证码)
WebDriverWait(self.driver, 2, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
变成WebDriverWait(self.driver, 60, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
首先感谢这位朋友的热心帮忙,但用Everything找不到dingding.py,直接将你编译好的文件上传,然后说明复制到哪个文件夹,可否? 楼主,你用的不会是Linux OS吧,我用的是Win版熊猫。
@mtnobody 验证可行 感谢分享!
首先将dingding.py中dd_login_status中的drive的参数加个nohead=False 让他显示界面
def dd_login_status(uname, has_dd=False): while True: if has_dd: dname, pwd = load_dingding("./user/{}/dingding".format(uname)) print("读取用户信息成功") else: dname, pwd = get_dd() driver_login = mydriver.Mydriver(noimg=False,nohead=False) login_status = driver_login.dd_login(dname, pwd) if login_status: save_dingding("./user/{}/dingding".format(uname), dname, pwd) cookies = driver_login.get_cookies() break return cookies
将mydriver.py中的等待时间从2秒改成60秒(意思是你有60秒的时间输入验证码)
WebDriverWait(self.driver, 2, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
变成WebDriverWait(self.driver, 60, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
首先感谢这位朋友的热心帮忙,但用Everything找不到dingding.py,直接将你编译好的文件上传,然后说明复制到哪个文件夹,可否? 楼主,你用的不会是Linux OS吧,我用的是Win版熊猫。
是用他的python源码运行的,源码在这个项目的Source Packgaes里面
首先将dingding.py中dd_login_status中的drive的参数加个nohead=False 让他显示界面
def dd_login_status(uname, has_dd=False): while True: if has_dd: dname, pwd = load_dingding("./user/{}/dingding".format(uname)) print("读取用户信息成功") else: dname, pwd = get_dd() driver_login = mydriver.Mydriver(noimg=False,nohead=False) login_status = driver_login.dd_login(dname, pwd) if login_status: save_dingding("./user/{}/dingding".format(uname), dname, pwd) cookies = driver_login.get_cookies() break return cookies
将mydriver.py中的等待时间从2秒改成60秒(意思是你有60秒的时间输入验证码)
WebDriverWait(self.driver, 2, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
变成WebDriverWait(self.driver, 60, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
首先感谢这位朋友的热心帮忙,但用Everything找不到dingding.py,直接将你编译好的文件上传,然后说明复制到哪个文件夹,可否? 楼主,你用的不会是Linux OS吧,我用的是Win版熊猫。
是用他的python源码运行的,源码在这个项目的Source Packgaes里面
多谢指点,这两个文件修改了,请问接下来怎么做?
按下面方法操作了,安装python 3.7.4安装版了,还是报错,如果能把你生成的panda.exe上传就多谢了,如果不行就算了,不过还是多谢你的指点。 1 下载源文件 2 将7Z解压中的chome文件夹和原来的user文件夹拷贝到Source Packages文件夹,在此文件夹中可以看到pandalearning.py文件 3 进入pdlearn文件夹修改get_links.py文件 4 cmd进入控制台,进入Source Packages文件夹 运行python pandalearning.py 用户名(即原来user文件夹保存的用户信息)
按下面方法操作了,安装python 3.7.4安装版了,还是报错,如果能把你生成的panda.exe上传就多谢了,如果不行就算了,不过还是多谢你的指点。 1 下载源文件 2 将7Z解压中的chome文件夹和原来的user文件夹拷贝到Source Packages文件夹,在此文件夹中可以看到pandalearning.py文件 3 进入pdlearn文件夹修改get_links.py文件 4 cmd进入控制台,进入Source Packages文件夹 运行python pandalearning.py 用户名(即原来user文件夹保存的用户信息)
要安装selenium 这个包:
pip install selenium
然后他目录下也要放一个chrome.
按下面方法操作了,安装python 3.7.4安装版了,还是报错,如果能把你生成的panda.exe上传就多谢了,如果不行就算了,不过还是多谢你的指点。 1 下载源文件 2 将7Z解压中的chome文件夹和原来的user文件夹拷贝到Source Packages文件夹,在此文件夹中可以看到pandalearning.py文件 3 进入pdlearn文件夹修改get_links.py文件 4 cmd进入控制台,进入Source Packages文件夹 运行python pandalearning.py 用户名(即原来user文件夹保存的用户信息)
要安装selenium 这个包:
pip install selenium
然后他目录下也要放一个chrome.
安装selenium了,还是不行,算了,不折腾了,多谢你的热心指点。
@mtnobody 同验证可行,感谢🙏
Traceback (most recent call last):
File ".\pandalearning.py", line 4, in
请问这个怎么解?谢谢
多谢分享,问题解决。接下来如果想用计划任务来实现的话就要加入OCR了,识别验证码后输入,打算使用tesseract来识别,等有空了把这块骨头啃下来。
Traceback (most recent call last): File ".\pandalearning.py", line 4, in from pdlearn import version File "D:\Tools\Panda-Learning-2.5\Source Packages\pdlearn\version.py", line 1, in import requests ModuleNotFoundError: No module named 'requests'
请问这个怎么解?谢谢
cmd下pip install requests即可 这是小问题 如果有发现类似报错 一并pip install XXX即可
修改后有如下错误:
Mydriver初始化失败
========================================================================================================================
Traceback (most recent call last):
File "/root/xuexiqiangguo/pandalearning.py", line 180, in <module>
cookies, a_log, v_log = user_flag(dd_status, uname)
File "/root/xuexiqiangguo/pandalearning.py", line 15, in user_flag
cookies = dingding.dd_login_status(uname, has_dd=True)
File "/root/xuexiqiangguo/pdlearn/dingding.py", line 23, in dd_login_status
driver_login = mydriver.Mydriver(noimg=False,nohead=False)
File "/root/xuexiqiangguo/pdlearn/mydriver.py", line 54, in __init__
self.driver = self.webdriver.Chrome(chrome_options=self.options)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Driver info: chromedriver=72.0.3626.7 (efcef9a3ecda02b2132af215116a03852d08b9cb),platform=Linux 3.10.0-957.10.1.el7.x86_64 x86_64)
首先将dingding.py中dd_login_status中的drive的参数加个nohead=False 让他显示界面
将mydriver.py中的等待时间从2秒改成60秒(意思是你有60秒的时间输入验证码)
WebDriverWait(self.driver, 2, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))
变成WebDriverWait(self.driver, 60, 0.1).until(lambda driver: driver.find_element_by_class_name("modal"))