selenium

  • 概述
    • 思路分析
      • 1. 登录淘宝网
      • 2. 输入用户名和密码
      • 3. 访问购物车
      • 4. 提交订单并确认支付
    • 完整代码

概述

每当双十一等购物节到来的时候,我们经常需要熬夜到凌晨来对心仪的商品进行抢购。那么,有没有一种可以避免我们熬夜却可以清空购物车的方法呢?今天我就给大家提供一种思路,即使用python+selenium爬虫技术实现淘宝购物车的清空。

思路分析

1. 登录淘宝网

登录淘宝网的网址为https://login.taobao.com/,因此我们首先应该使用selenuim模块对此网址进行访问,这里以chrome浏览器为例。为了防止被淘宝网检测出,我们需要进行相关设置来规避检测。

from selenium import webdriver
from selenium.webdriver import ChromeOptions  # 实现规避检测options = ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
bro = webdriver.Chrome('./chromedriver.exe', options=options)
bro.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})
bro.get('https://login.taobao.com')

2. 输入用户名和密码

在登陆之前,我们需要获取登录的用户名和登录密码。然后通过通过浏览器“检查”的方式,定位到输入用户名和密码的文本框,以及登录的按钮。

# 需要登录,输入用户名和密码
input_button = self.bro.find_element_by_name('fm-login-id')
input_button.send_keys(self.account)
passwd_button = self.bro.find_element_by_name('fm-login-password')
passwd_button.send_keys(self.password)
login_button = self.bro.find_element_by_css_selector('.fm-button')
login_button.click()

3. 访问购物车

在登陆以后,我们的目的是清空购物车,因此我们需要访问购物车。默认我们清空购物车,所以购物车里面多余的商品请先暂时清理掉。如果购物车是空的,则无法清空,因此需要设置异常处理机制。

bro.get('https://cart.taobao.com/cart.htm?t=1624499530235')try:choose_all = self.bro.find_element_by_css_selector('.select-all')choose_all.click()except:print("购物车是空的,请添加商品到购物车后重试!")bro.quit()

4. 提交订单并确认支付

进入提交环节,我们首先点击提价订单按钮,接着确认支付,输入支付密码,最后再次提交即可。最后使用的电脑是常用机器,否则可能会出现多余的安全验证环节。

# 提交订单
submit_btn = self.bro.find_element_by_id('J_Go')
submit_btn.click()# 确认支付
go_btn = self.bro.find_element_by_css_selector('.go-btn')
go_btn.click()# 输入支付密码
input_passwd_btn = bro.find_element_by_css_selector('.sixDigitPassword')input_passwd_btn.send_keys(self.payment_password)
confirm_btn = self.bro.find_element_by_css_selector('.ui-button')
confirm_btn.click()
bro.quit()

完整代码

from selenium import webdriver
from time import sleep
from selenium.webdriver import ChromeOptions  # 实现规避检测
import datetime as dtclass ShopTaobao(object):def __init__(self, account, password, payment_password):# 实现selenium规避被检测的风险options = ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-automation'])self.bro = webdriver.Chrome('./chromedriver.exe', options=options)self.bro.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"""})self.account = accountself.password = passwordself.payment_password = payment_passwordself.bro.maximize_window()def login(self):self.bro.get('https://login.taobao.com')# 需要登录,输入用户名和密码input_button = self.bro.find_element_by_name('fm-login-id')input_button.send_keys(self.account)passwd_button = self.bro.find_element_by_name('fm-login-password')passwd_button.send_keys(self.password)login_button = self.bro.find_element_by_css_selector('.fm-button')login_button.click()sleep(1)# 进入购物车,全选所有的商品self.bro.get('https://cart.taobao.com/)try:choose_all = self.bro.find_element_by_css_selector('.select-all')choose_all.click()sleep(2)except:print("购物车是空的,请添加商品到购物车后重试!")self.bro.quit()def submit(self):# 提交订单submit_btn = self.bro.find_element_by_id('J_Go')submit_btn.click()sleep(3)# 确认支付go_btn = self.bro.find_element_by_css_selector('.go-btn')go_btn.click()sleep(3)# 输入支付密码input_passwd_btn = self.bro.find_element_by_css_selector('.sixDigitPassword')input_passwd_btn.send_keys(self.payment_password)confirm_btn = self.bro.find_element_by_css_selector('.ui-button')confirm_btn.click()sleep(10)self.bro.quit()if __name__ == '__main__':# 设置执行时间target_time = '2021-11-10 23:59:59'while True:if dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S') == target_time:try:shop = ShopTaobao('淘宝账户', '淘宝账户密码', '支付宝支付密码')# 登录淘宝shop.login()# 提交订单shop.submit()finally:print("提交订单完毕,请检查您的购物车是否已被清空!")break

使用python+selenium清空淘宝购物车相关推荐

  1. python+selenium实现淘宝双十一自动下单

    python+selenium实现淘宝双十一自动下单 思路/工具参考我的另一篇文章python+selenium实现京东秒杀脚本 1. 扫码登录版 # !/usr/bin/env python # 2 ...

  2. Python+selenium实现淘宝秒杀

    Python Python版本 3.7.5 Python的设计哲学是"优雅"."明确"."简单".因此,Perl语言中"总是有多种 ...

  3. Python+Selenium模拟淘宝滑块并爬取商品数据

    注:如果侵犯了Alibaba的权益,请联系我删除. 上一篇博客已经完成了模拟淘宝登陆,本节主要记录如何爬取淘宝商品列表页数据,同时如何模拟人的操作完成滑块的验证. 代码如下: #encoding=ut ...

  4. Python selenium模拟淘宝登陆

    通过selenium定位到各个元素,通过相关操作(如输入框的输入,按钮的点击等)来模拟人的真实操作流程 流程是通过绕个圈子,用微博账号登陆来绕过淘宝登陆,不过事先需要将微博账号与淘宝账号进行绑定 下面 ...

  5. python自动下单源码_python+selenium实现淘宝双十一自动下单

    python+selenium实现淘宝双十一自动下单 # !/usr/bin/env python # 2020/05/20 # 淘宝秒杀脚本,扫码登录版 from selenium import w ...

  6. python+selenium+chrome实现淘宝购物车秒杀自动结算

    python+selenium+chrome实现淘宝购物车秒杀自动结算 一.所需环境 二.安装 三.代码 最后run()一把就ok了!! 之前总是想要买aj,但是淘宝店铺每次发售手动抢的时候一般都会被 ...

  7. python模拟淘宝登陆_【Python】selenium模拟淘宝登录

    # -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By f ...

  8. 练手写的python 淘宝购物车秒杀器 源码,成品链接,效果图

    #-*-coding:GBK -*- import os import winreg #操作注册表 import re import sys from tkinter import * from wi ...

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

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

最新文章

  1. ORA-22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小
  2. 计算机视觉与深度学习 | 基于多源传感器数据融合的动态场景SLAM研究
  3. [置顶] “河软CSDN2011级表彰暨实习动员大会”顺利召开!
  4. 平衡二叉树的构造_LeetCode-平衡二叉树
  5. 网络安全04_互联网发展史_网线+网卡+协议栈_中继器_集线器_网桥_路由器_AC/AP_防火墙_流控_家庭网络_小型创业公司网络_园区网_政务网络_数据中心网络拓扑_电信网/互联网_Mac地址
  6. keil MDK编译器警告和错误详解
  7. 网页设计工资一般多少_初级会计师就业前景怎么样?工资一般多少?
  8. 金融数据分析之财务分析表要填数据怎么办?(学习理财课程后开发的助手工具)
  9. 「leetcode」1356.根据数字二进制下1的数目排序【如何计算二进制中1的数量】详解!
  10. binlog的基本介绍和操作
  11. Chrome浏览器去广告插件 —— (Adblock Plus)
  12. 账龄分析表excel模板_这种高端表格模板你会做吗?Excel制作带照片的员工信息查询表...
  13. kafka与zookeeper下载安装及kafka常用命令
  14. UML基础(八)--构件图
  15. 主力用计算机吸筹,通达信主力吸筹指标
  16. 流光容易把人抛,红了樱桃,绿了芭蕉
  17. qq群api协议,非官方协议,抓包获取的QQ群操作协议
  18. Linux编写脚本nsum求和,shell脚本学习与总结
  19. js中的数据驱动(基础)
  20. Python 图像处理OpenCV:直方图均衡化(笔记)

热门文章

  1. Python 把蓝底照片转化为白底照片
  2. mysql数据库基础语句讲解
  3. 英语单词记忆 词源法-思维导图(20)词源st/sist/stat/stin/stem-217
  4. 【工厂扫码打印扫码装箱错误追溯系统】完整案例详解(PythonPyQt 源码Mysql数据库)
  5. 产品读书《极简生活法则》
  6. Python批量识别PDF文件格式发票信息并生成Excel表格
  7. Eclipse Neno版本 安装插件开发JavaEE
  8. android虚拟机固定横屏幕竖屏,用VBox虚拟机安装Android 屏幕90度翻转竖屏设置
  9. 第十部分 项目风险管理
  10. 【转】D365 FO第三方集成(四)---客户端调用