diff --git a/README.md b/README.md index 4a4679a..adb1af3 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ - [x] [知乎](http://zhihu.com) - [x] [QQZone](https://qzone.qq.com/) - [x] [CSDN](https://www.csdn.net/) -- [x] [淘宝](www.taobao.com) +- [x] [淘宝](https://login.taobao.com/member/login.jhtml) - [x] [Baidu](www.baidu.com) - [x] [果壳](https://www.guokr.com/) - [x] [JingDong 模拟登录和自动申请京东试用](https://www.jd.com/) @@ -102,6 +102,7 @@ - [x] [爬取图虫想要的图片](https://github.com/CriseLYJ/awesome-python-login-model/blob/master/tuchong/tuchong.py) - [x] [网易云音乐downloader](https://github.com/CriseLYJ/awesome-python-login-model/blob/master/NeteaseCloudMusicDownload/wangyiyun_spider.py) - [x] [糗事百科爬虫](https://github.com/CriseLYJ/awesome-python-login-model/blob/master/qsbk/qiushibaike.py) +- [x] [淘宝登陆-访问](https://login.taobao.com/member/login.jhtml) # Test diff --git a/taobao/taobao.py b/taobao/taobao.py new file mode 100644 index 0000000..e63d909 --- /dev/null +++ b/taobao/taobao.py @@ -0,0 +1,74 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +""" +author : CriseLYJ +github : https://github.com/CriseLYJ/ +update_time : 2019-4-2 +""" + +""" +淘宝登陆有时候不会跳出二维码页面,如果失败,请重新运行程序即可 +""" + +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_Spider: + + def __init__(self, username, password): + """初始化参数""" + url = 'https://login.taobao.com/member/login.jhtml' + self.url = url + + options = webdriver.ChromeOptions() + # 不加载图片,加快访问速度 + options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) + # 设置为开发者模式,避免被识别 + options.add_experimental_option('excludeSwitches', + ['enable-automation']) + self.browser = webdriver.Chrome(options=options) + self.wait = WebDriverWait(self.browser, 10) + # 初始化用户名 + self.username = username + # 初始化密码 + self.password = password + + def run(self): + """登陆接口""" + self.browser.get(self.url) + try: + # 这里设置等待:等待输入框 + login_element = self.wait.until( + EC.presence_of_element_located((By.CSS_SELECTOR, '.qrcode-login > .login-links > .forget-pwd'))) + login_element.click() + + sina_login = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.weibo-login'))) + sina_login.click() + + weibo_user = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.username > .W_input'))) + weibo_user.send_keys(self.username) + + sina_password = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.password > .W_input'))) + sina_password.send_keys(self.password) + + submit = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn_tip > a > span'))) + submit.click() + + taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, + '.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 '))) + # 输出淘宝昵称 + print(taobao_name.text) + except Exception: + self.browser.close() + print("登陆失败") + + +if __name__ == "__main__": + username = input("请输入你的微博用户名:") + password = input("请输入密码:") + + spider = Taobao_Spider(username, password) + spider.run()