码迷,mamicode.com
首页 > 其他好文 > 详细

某某登录的两种方法

时间:2019-07-09 19:17:35      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:desktop   head   成功   BMI   回车   微博   pat   adl   span   

方法一:微博登录

 1 from selenium import webdriver
 2 from selenium.webdriver.common.by import By
 3 from selenium.webdriver.support.ui import WebDriverWait
 4 from selenium.webdriver.support import expected_conditions as EC
 5 
 6 
 7 # 定义一个taobao类
 8 class taobao_infos:
 9     
10     # 对象初始化
11     def __init__(self):
12         url = https://login.taobao.com/member/login.jhtml
13         self.url = url
14         
15         options = webdriver.ChromeOptions()
16         options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2})  # 不加载图片,加快访问速度
17         options.add_experimental_option(excludeSwitches,
18                                         [enable-automation])  # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
19         
20         self.browser = webdriver.Chrome(options=options)
21         self.wait = WebDriverWait(self.browser, 10)  # 超时时长为10s
22     
23     # 登录淘宝
24     def login(self):
25         # 打开网页
26         self.browser.get(self.url)
27         
28         # 等待 密码登录选项 出现
29         password_login = self.wait.until(
30             EC.presence_of_element_located((By.CSS_SELECTOR, .qrcode-login > .login-links > .forget-pwd)))
31         password_login.click()
32         
33         # 等待 微博登录选项 出现
34         weibo_login = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .weibo-login)))
35         weibo_login.click()
36         
37         # 等待 微博账号 出现
38         weibo_user = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .username > .W_input)))
39         weibo_user.send_keys(weibo_username)
40         
41         # 等待 微博密码 出现
42         weibo_pwd = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .password > .W_input)))
43         weibo_pwd.send_keys(weibo_password)
44         
45         # 等待 登录按钮 出现
46         submit = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, .btn_tip > a > span)))
47         submit.click()
48         
49         # 直到获取到淘宝会员昵称才能确定是登录成功
50         taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,
51                                                                       .site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick )))
52         # 输出淘宝昵称
53         print(taobao_name.text)
54 
55 
56 if __name__ == "__main__":
57     # chromedriver_path = "/Users/bird/Desktop/chromedriver.exe"  # 改成你的chromedriver的完整路径地址
58     weibo_username = ""  # 改成你的微博账号
59     weibo_password = ""  # 改成你的微博密码
60     
61     a = taobao_infos()
62     a.login()  # 登录

方法二:保存cookie

  先保存cookie

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

options = Options()
dirver = webdriver.Chrome(options=options)
dirver.get(
    https://login.taobao.com/member/login.jhtml)
# 这里是为了等待手机扫码登录, 登录后回车即可
input("请回车登录")
dictCookies = dirver.get_cookies()
jsonCookies = json.dumps(dictCookies)
# 登录完成后,将cookies保存到本地文件
with open("./cookies_tao.json", "w") as fp:
    fp.write(jsonCookies)

  再次登录无需验证

 1 import json
 2 import time
 3 from selenium import webdriver
 4 from selenium.webdriver.chrome.options import Options
 5 
 6 options = Options()
 7 options.add_argument("--headless")
 8 dirver = webdriver.Chrome(options=options)
 9 # 初次建立连接, 随后方可修改cookie
10 dirver.get(http://www.taobao.com)
11 # 删除第一次登录是储存到本地的cookie
12 dirver.delete_all_cookies()
13 # 读取登录时储存到本地的cookie
14 with open("cookies_tao.json", "r", encoding="utf8") as fp:
15     ListCookies = json.loads(fp.read())
16 
17 for cookie in ListCookies:
18     dirver.add_cookie({
19         domain: .taobao.com,  # 此处xxx.com前,需要带点
20         name: cookie[name],
21         value: cookie[value],
22         path: /,
23         expires: None
24     })
25 
26 # 再次访问页面,便可实现免登陆访问
27 dirver.get("https://www.taobao.com")
28 time.sleep(3)
29 # 将页面保存为图片用于查看是否登录成功
30 dirver.save_screenshot("./taobao.png")
31 dirver.quit()

 

某某登录的两种方法

标签:desktop   head   成功   BMI   回车   微博   pat   adl   span   

原文地址:https://www.cnblogs.com/wangtaobiu/p/11159352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!