辛辛苦苦写完代码,验证码也过了 结果怎么样点击登录也无法跳转。
看来是被反爬了。。。
附链接:因为一行js就可以识别出来
尽管被识别出来,也还是有解决办法的,1.首先是将chrome版本换成78,然后代码不变 也还是可以直接模拟登录的。
第二种方法就很骚了,我通过尝试selenium直接qq登录发现是可以直接登录的 并且也不需要换78版本和过验证码 我用的(78版本后都不行)80版本在页面中怎么点击登录都不会跳转 手机验证码 直接账号密码登录都不行
结果竟然QQ还能直接过(电脑需要登录qq) 不过有个问题是 点击登录后需要手机确定同意 不过这一点好解决 我想的是直接自动控制鼠标打开安卓模拟器进行qq里面的确定(是不是超级简单?!)而且确认一次后,不需要第二次确认, 如果不知道是否需要确认可以写判断语句
而且如果有类似的登录网站也有QQ快捷登录,那么同样也可以直接绕过验证码这一块,算是耍小聪明了。不过最后技术还是要好好学的,验证码的识别这些需要好好学了。
import time
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from mouse import move,click
**#这一段可以不需要 不注释的话需要利用cmd启动chrome(先cd到目录) 并--remote-debugging-port=9222跟后面端口号对应**
#option=webdriver.ChromeOptions()
#option.add_argument('--disable-extensions')
#option.add_experimental_option('debuggerAddress',"127.0.0.1:9222")
#driver=webdriver.Chrome(chrome_options=option)
**#直接利用selenium自动启动的也可以 不用接管 我试过了**
driver=webdriver.Chrome()
driver.get("https://www.zhihu.com/signin")
def autologin():
**#这里切换qq登录 后面我加延时为了看到好的效果**
change_Qq_login=driver.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div[2]/span[2]/div[2]').click()
time.sleep(3)
**#座标的确定 下一个获取鼠标座标的小工具 后面的都是
#这里已经点了**
move(724,475)
time.sleep(2)
click()
**#这里打开模拟器 座标都需要实际去确定(为避免每次都改,可以固定下方任务栏)**
move(968,896)
time.sleep(1)
click()
**#这里打开手机qq进行确定**
move(741,303)
time.sleep(1)
click()
autologin()
最后附上我的博客http://www.dwlufvexyu.com/