爬虫-selenium(二)微博账号登录淘宝

1. selenium 操控chrome浏览器

上一篇写的是操作火狐浏览器,今天切换成谷歌的chrome浏览器,对开发者更友好些,插件也多。
第一步是下载对应的驱动程序,上一篇中有链接,但谷歌不还没办法访问,又找到了一个可以下载的地址 http://chromedriver.storage.googleapis.com/index.html 找到操作系统对应和浏览器对应的版本下载即可。
下载完成后解压,是个名叫chromedriver.exe的文件,仍旧给他放到一个配置了环境变量的路径,比如python 路径。
测试下chromedriver 是否能正常调用,windows 打开cmd, 输入chromedriver ,回车,出现下面的画面,表示成功了。

2. 打开淘宝登录页

功能简单,直接上代码。

from selenium import webdriver


# 淘宝类
class Taobao:
    #类初始化方法
    def __init__(self):
        self.url = 'https://login.taobao.com/member/login.jhtml'    # 淘宝登录地址
        self.browser = webdriver.Chrome()                           # 设定浏览器

    # 登录方法
    def login(self):
        self.browser.get(self.url)          #打开淘宝登录页面


# 本地调用测试
if __name__ == "__main__":
    t = Taobao()    # 实例化类
    t.login()       # 登录

运行看下效果
爬虫-selenium(二)微博账号登录淘宝_第1张图片
打开登录页面了,有5中登录方式,账号和密码、短信,app扫码、微博、支付宝。现在用微博登录的方式,为什么用微博账号登录,很负责任的说,因为这种方式最简单!

3. 尝试登录

思路就是打开淘宝登录页-点击微博登录-跳转完成-账号、密码赋值- 点击登录。
改造下login方法的代码

 # 登录方法
    def login(self):
        self.browser.get(self.url)          #打开淘宝登录页面

        # 等待 微博登录选项 出现
        weibo_login = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.weibo-login')))
        weibo_login.click()

        # 等待 微博账号 出现
        weibo_user = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.username > .W_input')))
        weibo_user.send_keys('你的微博账号')

        # 等待 微博密码 出现
        weibo_pwd = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.password > .W_input')))
        weibo_pwd.send_keys('你的微博密码')

        # 等待 登录按钮 出现
        submit = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn_tip > a > span')))
        submit.click()

4 运行查看结果

我自己的微博账号长时间不用冻结了,不展示效果了,再贴一次完整代码吧

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 淘宝类
class Taobao:
    #类初始化方法
    def __init__(self):
        self.url = 'https://login.taobao.com/member/login.jhtml'    # 淘宝登录地址
        self.browser = webdriver.Chrome()                           # 设定浏览器

        options = webdriver.ChromeOptions()
        options.add_experimental_option('excludeSwitches',
                                    ['enable-automation'])  # 设置为开发者模式
        self.browser = webdriver.Chrome(options=options)
        self.wait = WebDriverWait(self.browser, 10)  # 超时时长为10s

    # 登录方法
    def login(self):
        self.browser.get(self.url)          #打开淘宝登录页面

        # 等待 微博登录选项 出现
        weibo_login = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.weibo-login')))
        weibo_login.click()

        # 等待 微博账号 出现
        weibo_user = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.username > .W_input')))
        weibo_user.send_keys('18519151765')

        # 等待 微博密码 出现
        weibo_pwd = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.password > .W_input')))
        weibo_pwd.send_keys('Yanyan9898')

        # 等待 登录按钮 出现
        submit = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn_tip > a > span')))
        submit.click()


# 本地调用测试
if __name__ == "__main__":
    t = Taobao()    # 实例化类
    t.login()       # 登录

你可能感兴趣的:(爬虫-Selenium,爬虫,python)