模拟登录淘宝--Python
模拟登录淘宝–Python
由于淘宝开始检测selenium,要绕过检测非常麻烦。故使用另外一款Python的自动化工具:Pyppeteer,来模拟登录淘宝获取cookie。目前没有遇到滑块验证(该有的还是会有的),放上粗超的demo代码,提供学习。
代码
# -*- coding: utf-8 -*-import asyncio
from pyppeteer import launch
import time
from retry import retry # 设置重试次数用的count = 1async def main(username, password, url): # 主函数browser = await launch({'headless': True, 'args': ["--disable-infobars"]}) # headless设置无界面模式page = await browser.newPage()await page.goto(url)print('注入js')# 以下为插入中间js,将淘宝会为了检测浏览器而调用的js修改其结果。await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => undefined } }) }''')try:await page.click('a.forget-pwd.J_Quick2Static')print('切换到密码登录页面')cookie = await login(page, username, password)return cookieexcept Exception as e:print('直接进入密码登录页面', e)cookie = await login(page, username, password)return cookieasync def login(page, username, password): # 登录动作time.sleep(1)print('输入账号和密码')await page.type('input#TPL_username_1', username)time.sleep(1)await page.type('input#TPL_password_1', password)time.sleep(1)# 点击搜索按钮await page.click('button#J_SubmitStatic')time.sleep(2)print('点击登录')# 在while循环里强行查询某元素进行等待# while not await page.waitForXPath('//li[@id="J_SiteNavLogin"]'):# return Noneprint('登录成功!')ck = await get_cookie(page)await save_cookie(ck)return ckasync def get_cookie(page): # 获取登录后cookiecookies_list = await page.cookies()cookies = ''for cookie in cookies_list:str_cookie = '{0}={1};'str_cookie = str_cookie.format(cookie.get('name'), cookie.get('value'))cookies += str_cookieprint(cookies)return cookiesasync def save_cookie(cookies): # 保存到本地with open(r'./cookies.txt', 'w', encoding='utf-8') as f:f.write(cookies)print('保存成功')@retry(tries=3)
def run():global countprint('第%s次尝试请求' % count)username = '' # 输入你的账号password = '' # 输入你的密码url = 'https://login.taobao.com/member/login.jhtml?redirectURL=https%3A%2F%2Fwww.taobao.com%2F'# 协程,开启个无限循环的程序流程,把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。loop = asyncio.get_event_loop()m = main(username, password, url)ck = loop.run_until_complete(m) # 将协程注册到事件循环,并启动事件循环count += 1return ckdef tb_cookies():ck = run()if ck is not None:return ckif __name__ == '__main__':tb_cookies()
使用说明
在username和password处输入你的账号和密码
launch的headless默认设置为True是无界面模式,调试可以改为False有界面显示
代码简陋,只是提供学习参考,如有任何不当,请联系删除。谢谢!
更多分享文章,欢迎访问:downdawn
交流互动学习群,网罗分享学习资料。欢迎加入:861862805(如有打扰,请忽略。。)
模拟登录淘宝--Python相关推荐
- 手把手教你用Python模拟登录淘宝
作者 | 猪哥66 来源 | 裸睡的猪(ID:IT--Pig) 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模拟 ...
- Python爬虫实战(5):模拟登录淘宝并获取所有订单
Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...
- Python爬虫实战(5):模拟登录淘宝并获取所有订单(1)
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的 ...
- python淘宝爬虫登陆功能和下单功能_Python 爬虫实战5 模拟登录淘宝并获取所有订单...
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...
- python淘宝爬虫登陆功能和下单功能_Python爬虫实战五之模拟登录淘宝并获取所有订单 | 静觅...
经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...
- Python实战案例,requests模块,Python实现模拟登录淘宝网
前言 利用利用Python模拟登录淘宝网.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re模块 os模块 requests模块: 以及一些Python自带 ...
- python requests模拟登录淘宝购物车下单_Python使用requests库模拟登录淘宝账号(上)...
学好Python这款编程语言,我们能够设计出很多程序要帮助我们完成数据采集等工作,ET代理今天要跟大家介绍如何用Python模拟登录淘宝账号? 看了下网上有很多关于模拟登录淘宝,但是基本都是使用scr ...
- Python模拟登录淘宝都实现了,你还怕模拟登录?
点击"简说Python",选择"置顶/星标公众号" 福利干货,第一时间送达! 本文授权转载自裸睡的猪,禁二次转载 作者:猪哥66 阅读文本大概需要 8 分钟. ...
- 手把手教你如何用Python模拟登录淘宝
作者 | 猪哥66 来源 | 裸睡的猪(ID:IT--Pig) 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模 ...
最新文章
- 更换主版之后远程管理卡恢复操作
- CSS三角形如何工作?
- 为什么要做一个靠谱的人?
- 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)...
- 他不怕被拒绝_不怕被拒绝,这几大星座男追人时最有耐心
- Shadow DOM及自定义标签
- Twisted SSH
- 体验式培训之“铁人七项”
- Java面向对象的构造方法例子
- 很高兴向大家推荐《jBPM4工作流应用开发指南》这本书
- Lightroom Classic mac版怎样创建全景图和HDR全景图?
- 【转】android开发中如何结束所有的activity
- xp电脑多少位怎么看_怎么看电脑是32位还是64位
- 塞班系统 微信 服务器忙,微信QQ遭停用,塞班系统部分机型彻底不能登陆
- android屏幕截图代码,android中实现整个屏幕截图的代码
- 拼音工具类PinyinUtils
- sinx泰勒展开_求极限:泰勒公式应展开到第几阶?
- 为什么公司宁愿花 15k 重招一个新人,也不愿加薪 5k 留住老程序员?
- Maven详解【Idea搭建Maven项目、Maven常用指令、Maven的传递性和依赖性、排除依赖】
- 自动生成注释作者名字和日期等信息(IDEA Java类)