Python+Webdriver实现淘宝、京东等抢单操作
最近双十一已经到了,笔者为了拓展技术水平研究了一下网络爬虫技术,其中双十一给人印象最深刻地就是抢单了,“爬虫学的好,监狱进得早”。本着学术和技术研究的态度,笔者仅使用了普通商品进行测试操作,不进行盈利活动。
0.引言
抢单操作其含义在于到达预定时间,使得我们电脑控制浏览器自动完成相关过程。
因此可以调用python 的selenium包可以实现与浏览器交互,但目前浏览器厂商未直接支持webdriver,因此我们还需要下载诸如 chromedriver.exe(chrome)等浏览器驱动供python调用。
小编以淘宝网为例,脚本最终可直接进入付款界面,证明了这条技术路线是可行高效的,但最终触发了淘宝的支付异常,不得不说支付宝在这方面做的还是很牛的,所以写下这篇博客权当技术研究记录。
1.准备工作
设备:一台可以上网的计算机
软件:操作系统、浏览器
编程语言:Python
2.下载并导入selenium包
使用pip命令即可简单高效地下载并安装selenium包,我们可从官网下载各个浏览器的驱动程序(.exe),为了方便起见,直接将驱动exe文件放入代码目录下即可。
3.编写代码
小编也是借鉴网络上大佬们发布的相关代码,但随着selenium的最近一次更新,很多网络上的代码已经不能用了,并且这些代码比较基础简单,交互性不够好,因此本人也做了一些改进。
3.1首先导入各种库
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
import datetime
3.2实现各种功能
1.webdriver初始化
option = webdriver.ChromeOptions()
option.add_argument('disable-infobars')
driver = webdriver.Chrome(options=option)
2.跳转到指定网站
def get_url(self):global driverdriver.get(self.__base_url)
3.登录淘宝
def login(self):global driverif driver.find_element(By.XPATH,'//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]'):driver.find_element(By.XPATH,'//*[@id="J_SiteNavLogin"]/div[1]/div[1]/a[1]').click()driver.find_element(By.XPATH,'//*[@id="login"]/div[1]/i').click()#点击扫码登陆while True:try:if driver.find_element(By.XPATH,'//*[@id="J_SiteNavLogin"]/div[1]/div/a'):driver.get("https://cart.taobao.com/cart.htm")print("跳转成功!")breakexcept:pass
4.等候购买
def buy(self,times):global driverprint("机器人已经再为您等候时间到来,记得付款嗷!")while True:now=datetime.datetime.now()if now>times:while True:try:if driver.find_element(By.ID,'J_Go').get_attribute("class")=="submit-btn":driver.find_element(By.XPATH,'//*[@id="J_Go"]').click()print("结算成功,准备提交订单!")breakexcept:passwhile True:try:if driver.find_element(By.XPATH,'//*[@id="submitOrderPC_1"]/div/a[2]'):driver.find_element(By.XPATH,'//*[@id="submitOrderPC_1"]/div/a[2]').click()print("提交订单成功,请尽快付款!")breakexcept:pass
上述函数均为类内函数,类的全部代码暂不放出,以防止直接复制粘贴造成技术滥用。
3.3主程序
option = webdriver.ChromeOptions()
option.add_argument('disable-infobars')
driver = webdriver.Chrome(options=option)
robot = Robot("https://www.taobao.com",int(input("请输入密码:")))
print("请输入年-月-日-小时-分钟的格式设置输入时间!~")
Time=input().split("-")
Time=[int(Time[i]) for i in range(len(Time))]
#print(time)
set_time = datetime.datetime(Time[0],Time[1],Time[2],Time[3],Time[4])
robot.get_url()
robot.login()
# 设置抢购时间
robot.buy(set_time)
4.技术细节
抢单软件的关键部分在于Selenium库的调用,其中Selenium库也只使用到了两类方法:
#1.跳转到指定网址
driver.get("目标网址")#2.通过不同属性方法获取目标元素
driver.find_element(By.###,"###")
在第二类方法的基础上我们可以对元素执行更多的操作:
例如获取相关状态信息和进行click()操作:
#获取淘宝购物车结算状态,当勾选了商品时,结算按钮的状态会发生变化,
#我们就可以捕获到并作为判断条件。
if driver.find_element(By.ID,'J_Go').get_attribute("class")=="submit-btn":#获得结算按钮元素的两种方式,并进行了属性判断和行为操作driver.find_element(By.XPATH,'//*[@id="J_Go"]').click()#结算按钮的点击操作。print("结算成功,准备提交订单!")
当然,读者需要一些浏览器调试基础,来获取到相关元素的属性,可自行百度学习,不同购物网站的设计方式均不同,在此不做赘述。
5.写在最后
知识不是用来盈利的工具,而是用来不交智商税。
不想为知识壁垒付费,就要多学习并掌握知识。
希望大家也多学习一下法律知识,别一不小心进去了。
Python+Webdriver实现淘宝、京东等抢单操作相关推荐
- 用Python实现淘宝京东毫秒级秒杀,看谁还能抢过我
你还在为各种活动秒杀 抢不过别人而烦恼吗? 今天就来教你如何用Python来实现淘宝京东毫秒级的抢购,用Python来告诉你,秒杀就是这么简单!!! 妈妈再也不要担心我抢不到限时秒杀特价商品啦!!! ...
- python+selenium实现淘宝双十一自动下单
python+selenium实现淘宝双十一自动下单 思路/工具参考我的另一篇文章python+selenium实现京东秒杀脚本 1. 扫码登录版 # !/usr/bin/env python # 2 ...
- python爬取淘宝商品图片
python爬取淘宝商品的图片 话不多说,直接上代码: from selenium import webdriver from selenium.webdriver.common import key ...
- 淘宝京东拼多多抖音1688苏宁淘特等关键词搜索商品API接口(关键词搜索商品API接口,关键词搜索商品列表接口,分类ID搜索商品列表接口,关键词搜索商品销量接口)
淘宝京东拼多多抖音1688苏宁淘特等关键词搜索商品API接口(关键词搜索商品API接口,关键词搜索商品列表接口,分类ID搜索商品列表接口,关键词搜索商品销量接口)代码对接如下: 1.公共参数 名称 类 ...
- python模拟登陆淘宝(更新版)
python模拟登录淘宝,获取cookies,含sign参数破解(新) 旧版方法总结 流程繁琐 需要操作外部工具fildder,方便性差 理解略显困难 成功率不足 新版两种方法 1 扫码登陆:操作简便 ...
- 淘宝京东拼多多抖音淘特1688等多平台商品APP详情API接口(商品详情页面数据接口,商品销量接口,关键词搜索商品销量接口)
淘宝京东拼多多抖音淘特1688等多平台商品APP详情API接口(商品详情页面数据接口,商品销量接口,关键词搜索商品销量接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String ...
- 带你搞懂,为什么淘宝京东等使用不需要每次都登录?
背景 现如今,人人有手机,手机皆为苹果安卓等智能手机: 现如今,人人爱网购,网购皆为淘宝京东等电商平台. 喜欢网购的你是否发现,下载好淘宝京东,只要你时不时的用一下它,就不用登录了. 这是为什么呢? ...
- python爬去淘宝西装数据
python爬去淘宝西装数据 啥也不说代码先码上 #爬取数据 from selenium import webdriver from bs4 import BeautifulSoup import t ...
- 淘宝/京东/拼多多/苏宁/抖音等平台详情数据分析接口(APP商品详情源数据接口代码对接教程)
一.接口背景: 最近做一个电子商务平台的投标工作,写技术标过程中,配到客户做拼多多集成的接口,其中有一个需求就是监控品牌旗下商品价格,维权,具体需求如下描述: 1.零售价格.批销价格.代销价格.都存储 ...
- 淘宝京东拼多多抖音淘特等多平台商品聚合商品详情API接口(商品详情页API接口,商品销量Api接口)
淘宝京东拼多多抖音等多平台商品聚合商品详情API接口(商品详情页API接口,商品销量Api接口)代码对接如下: 1.公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET ...
最新文章
- maven工程导入eclipse后报错
- CSDN在文章头部添加目录
- Lerna 运行流程剖析
- 【转】2.1【MySQL】运行原理(一):查询sql的执行过程及MySQL架构分析
- python模块是一个可共享的程序_python基础-模块
- [翻译]超炫列表动画的实现
- C++ 4 C++变量及作用域
- paip.输出内容替换在Apache 过滤器filter的设置
- Ovito教程:高清大图渲染方法
- 软件:10款免费无广告的看图软件,总有一款适合你
- 好用的电脑端看图软件
- ThreeJS 实现等值线效果
- A pretty carpet
- mysql多条语句union_Mysql同时执行多个select语句——union
- R语言---Seewave包和tuneR在声音分析中的应用①关于声音及简单分析
- SCI写作之-结构和写作顺序
- 等保2.0基本要求与等保1.0对比解读
- 做不了爱人,我们做什么
- 谷歌AI聊天机器人Bard答错问题,股价大跌7.4%;淘宝屏蔽ChatGPT;孟晚舟4月将首次当值华为轮值董事长丨每日大事件...
- 阿里云视频点播相关代码
热门文章
- CDR是什么?CorelDRAW矢量绘图
- 用Ai制作立体logo
- python:类基础
- 还没毕业,我就进了HR的黑名单!
- 路由器配置双宽带,并相互备份使用
- Elasticsearch之近义词/同义词的使用
- Error attempting to get column ‘hiredate‘ from result set. Cause: java.sql.SQLFeatureNotSupportedEx
- AD21 DXP 快捷键失效的解决办法
- 163邮箱注册登录官网是什么?163邮箱登陆流程在这里
- 163邮箱邮件服务器域名,注册申请网易免费域名邮箱服务