模拟登录淘宝–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()

使用说明

usernamepassword处输入你的账号和密码

launch的headless默认设置为True是无界面模式,调试可以改为False有界面显示

代码简陋,只是提供学习参考,如有任何不当,请联系删除。谢谢!

更多分享文章,欢迎访问:downdawn

交流互动学习群,网罗分享学习资料。欢迎加入:861862805(如有打扰,请忽略。。)

模拟登录淘宝--Python相关推荐

  1. 手把手教你用Python模拟登录淘宝

    作者 | 猪哥66 来源 | 裸睡的猪(ID:IT--Pig) 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模拟 ...

  2. Python爬虫实战(5):模拟登录淘宝并获取所有订单

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  3. Python爬虫实战(5):模拟登录淘宝并获取所有订单(1)

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 1. python模拟登录淘宝网页 2. 获取登录用户的 ...

  4. python淘宝爬虫登陆功能和下单功能_Python 爬虫实战5 模拟登录淘宝并获取所有订单...

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 本篇内容 python模拟登录淘宝网页 获取登录用户的所有订单详情 ...

  5. python淘宝爬虫登陆功能和下单功能_Python爬虫实战五之模拟登录淘宝并获取所有订单 | 静觅...

    经过多次尝试,模拟登录淘宝终于成功了,实在是不容易,淘宝的登录加密和验证太复杂了,煞费苦心,在此写出来和大家一起分享,希望大家支持. 温馨提示 更新时间,2016-02-01,现在淘宝换成了滑块验证了 ...

  6. Python实战案例,requests模块,Python实现模拟登录淘宝网

    前言 利用利用Python模拟登录淘宝网.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: re模块 os模块 requests模块: 以及一些Python自带 ...

  7. python requests模拟登录淘宝购物车下单_Python使用requests库模拟登录淘宝账号(上)...

    学好Python这款编程语言,我们能够设计出很多程序要帮助我们完成数据采集等工作,ET代理今天要跟大家介绍如何用Python模拟登录淘宝账号? 看了下网上有很多关于模拟登录淘宝,但是基本都是使用scr ...

  8. Python模拟登录淘宝都实现了,你还怕模拟登录?

    点击"简说Python",选择"置顶/星标公众号" 福利干货,第一时间送达! 本文授权转载自裸睡的猪,禁二次转载 作者:猪哥66 阅读文本大概需要 8 分钟. ...

  9. 手把手教你如何用Python模拟登录淘宝

    作者 |  猪哥66 来源 | 裸睡的猪(ID:IT--Pig) 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模 ...

最新文章

  1. 更换主版之后远程管理卡恢复操作
  2. CSS三角形如何工作?
  3. 为什么要做一个靠谱的人?
  4. 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)...
  5. 他不怕被拒绝_不怕被拒绝,这几大星座男追人时最有耐心
  6. Shadow DOM及自定义标签
  7. Twisted SSH
  8. 体验式培训之“铁人七项”
  9. Java面向对象的构造方法例子
  10. 很高兴向大家推荐《jBPM4工作流应用开发指南》这本书
  11. Lightroom Classic mac版怎样创建全景图和HDR全景图?
  12. 【转】android开发中如何结束所有的activity
  13. xp电脑多少位怎么看_怎么看电脑是32位还是64位
  14. 塞班系统 微信 服务器忙,微信QQ遭停用,塞班系统部分机型彻底不能登陆
  15. android屏幕截图代码,android中实现整个屏幕截图的代码
  16. 拼音工具类PinyinUtils
  17. sinx泰勒展开_求极限:泰勒公式应展开到第几阶?
  18. 为什么公司宁愿花 15k 重招一个新人,也不愿加薪 5k 留住老程序员?
  19. Maven详解【Idea搭建Maven项目、Maven常用指令、Maven的传递性和依赖性、排除依赖】
  20. 自动生成注释作者名字和日期等信息(IDEA Java类)

热门文章

  1. backupexec mysql_backup-mysql.sh
  2. online-section1-new
  3. 成功的背后(给所有IT人)—从高考落榜到IT奇才
  4. GPS 卫星的信号结构
  5. 实习纪实——1.31记
  6. 百度大脑人体分析服务3月上新盘点
  7. 存在心里的人,走进生命的魂
  8. VUE|利用父子组件制作弹出框
  9. Kubernetes HPA测试
  10. GAN学习总结一 GAN基本概念理解