使用selenium模拟登录知乎

1.使用浏览器打开知乎网站,进入登录界面https://www.zhihu.com/signin?next=%2F
2.使用开发者工具或者使用快捷键F12(我的是fn+F12),看各自笔记本而定
3.定位到使用密码登录的位置,如图
使用selenium模拟登录知乎_第1张图片
使用xpath来定位“密码登录”的位置,放入备用//div[@class=‘SignFlow-tabs’]/div[2]
4.定位需要输入手机号的地方,如图
使用selenium模拟登录知乎_第2张图片
使用css来定位输入手机号的地方,放入备用.SignFlow-account input[name=‘username’]
5.同理,使用css来定位输入密码的地方,放入备用.SignFlow-password input[name=‘password’]
6.定位登录按钮,使用xpath来定位,放入备用//div[@class=‘SignContainer-inner’]/form/button
7.设置selenium来接管使用中的浏览器,否则就会出现错误,错误提示如下:10001:请求参数异常,请升级客户端后重试"
首先:将chrome放入系统环境中,右键chrome浏览器,选择“打开文件所在位置”,复制路劲,右击我的电脑-》属性-》高级系统设置-》环境变量-》path,然后新建,把刚才复制的路劲粘贴进入,如图:
使用selenium模拟登录知乎_第3张图片
打开cmd,输入chrome.exe。如果出现了一个新的chrome浏览器,即便是成功。
然后:使用指令【chrome.exe --remote-debugging-port=9222 --user-data-dir=“E:\data_info\selenium_data”】
其中–remote-debugging-port是建立新的移植位置,其中端口后面会使用(自定义), --user-data-dir是数据存储的目录(自定义)
使用selenium模拟登录知乎_第4张图片
输入完成后,回车,会打开一个新的浏览器,放着待会使用。
8.编码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

class  Zhihu:
    def __init__(self):
        self.url = "https://www.zhihu.com/signin?next=%2F"
        self.chrome_options = Options()
        self.chrome_options.add_experimental_option("debuggerAddress","127.0.0.1:9222")
        self.browser = webdriver.Chrome(executable_path=r"D:\Python\chromedriver\chromedriver.exe",options=self.chrome_options)
    def login(self):
        self.browser.get("https://www.zhihu.com/signin?next=%2F")
        self.browser.find_element_by_xpath("//div[@class='SignFlow-tabs']/div[2]").click()
        #send_keys放入你的手机号
        self.browser.find_element_by_css_selector(".SignFlow-account input[name='username']").send_keys("13333333333")
        #send_keys放入你的密码
        self.browser.find_element_by_css_selector(".SignFlow-password input[name='password']").send_keys("13333333333")
        self.browser.find_element_by_xpath("//div[@class='SignContainer-inner']/form/button").click()
if __name__ == "__main__":
    zhihu = Zhihu()
    zhihu.login()

如果出现验证码,就需要手动输入一下。

你可能感兴趣的:(python)