天猫商城自动化python脚本(仅供初学者学习使用)

这篇具有很好参考价值的文章主要介绍了天猫商城自动化python脚本(仅供初学者学习使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:Eason_LYC
悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。
一个人的价值,在于他所拥有的。可以不学无术,但不能一无所有!
技术领域:WEB安全、网络攻防
关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半功倍,少走弯路!
个人社区:极乐世界-技术至上
追求技术至上,这是我们理想中的极乐世界~(关注我即可加入社区)

背景

写这篇文章的目的仅是为了方便给初学者介绍一下如何上手写一些好玩的脚本,能更快的学以致用。
从前年开始,天猫和京东就推出各类抢购活动,最有代表性的就是53°飞天茅台的抢购,那个抢到后真金白银能赚到钱。只是现在再也不是一个脚本就能搞定的了,已经升级成为服务器加网络的专业团队才能玩的抢购了。
用py写一个淘宝后台自动控制的,个人小工具分享,python,自动化,抢购,selenium,茅台

本文介绍的脚本仅是实现淘宝从购物车自动全选、结算、下单直到付款的自动化脚本工具,是一个非常初级简单的脚本。抢到这个茅台不太可能,但是一般的商品自动化没问题。但是对于初学者能非常好的get到思路,并能直接看到效果。

天猫超市业务逻辑

写任何脚本之前,都要通过正常的访问,明确基本的业务逻辑。本文关注天猫商城的购买流程,那天猫商城购买流程有哪些呢?

本脚本实现上市步骤2、3、4的自动化操作

此类python脚本基础知识

一定要会的两个python第三方库,分别是第三方库selenium和python内置库requests

python selenium 基本使用方式

Python Selenium 是一种用于自动化测试 Web 应用程序的工具,它使用 Python 编写的脚本来控制 Web 浏览器进行操作。

基本使用方式如下:

  1. 安装 Selenium:可以通过 pip 安装,在终端输入命令 “pip install selenium” 即可。

  2. 下载 WebDriver:Selenium 需要与浏览器配合使用,所以你需要下载与使用的浏览器相对应的 WebDriver。

  3. 导入 Selenium:在 Python 代码中导入 selenium 库。

  4. 创建 WebDriver 对象:使用以下代码创建 WebDriver 对象:

from selenium import webdriver

driver = webdriver.Firefox()
  1. 操作浏览器:使用 WebDriver 的方法操作浏览器,如打开网页、填写表单、点击按钮等。
# 举例
driver.get("https://www.google.com")

search_box = driver.find_element_by_name("q")
search_box.send_keys("Selenium")
search_box.submit()
  1. 关闭浏览器:使用以下代码关闭浏览器:
driver.quit()

官方文档

python3 内置库requests

Python3 内置的 requests 库是一个非常流行的 HTTP 客户端库,提供了简洁易用的 API,帮助你快速发送 HTTP 请求。

  1. 发送 GET 请求:
import requests

url = 'https://www.example.com/api/get_data'
response = requests.get(url)

if response.status_code == 200:
    data = response.json()
    # do something with data
else:
    print('Failed to fetch data')
  1. 发送带有参数的 GET 请求:
import requests

url = 'https://www.example.com/api/search'
params = {'query': 'python', 'page': 1}
response = requests.get(url, params=params)

if response.status_code == 200:
    data = response.json()
    # do something with data
else:
    print('Failed to search data')
  1. 发送 POST 请求
import requests

url = 'https://www.example.com/api/create_user'
data = {'username': 'example_user', 'email': 'example_user@example.com'}
response = requests.post(url, data=data)

if response.status_code == 201:
    result = response.json()
    # do something with result
else:
    print('Failed to create user')

这些仅仅是 requests 库的基本用法,它还有许多其他功能,例如发送带有请求头、cookie、文件等的请求,更多用法请参考官方文档:http://docs.python-requests.org/en/latest/

使用Selenium实现自动化抢购茅台

完整脚本如下:

import datetime
from time import sleep
from selenium import webdriver

flag = False
# 秒杀时间  浏览器时间
times = '2023-02-12 20:00:00'
print("*"*48)
print("【重要】此脚本仅用于演示学习使用,不得用于任何实际环境或支付环节!!!")
print("【重要】程序会自动在目标时间,打开购物车点击结算,最终至付款界面,需手动完成付款!!!")
print("【tips】请提前设置默认邮寄地址,准备好手机扫码登陆。建议提前40s运行程序。")
print("目标时间:",times)
print("*"*48)
browser = webdriver.Chrome()
browser.get('https://login.taobao.com/')
sleep(2)
browser.find_element_by_xpath("/html/body/div/div[2]/div[3]/div/div/div/div[1]/i").click()
print(f"请在10s内完成扫码登陆")
sleep(16)
browser.get("https://cart.taobao.com/cart.htm?spm=a21bo.jianhua.1997525049.1.5af911d9v3sXxZ&from=mini&pm_id=1501036000a02c5c3739")
sleep(4)
# 购物车全选
while 1==1:
    if browser.find_element_by_id("J_SelectAll1"):
        browser.find_element_by_id("J_SelectAll1").click()
        break

print("waiting for time...")
while True:
    # 获取电脑现在的时间
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
    # 对比时间,时间到的话就点击立即购买

    if now >= times:
        print(now)
        try:
            if browser.find_element_by_link_text("结 算"):
                browser.find_element_by_link_text("结 算").click()
                print("1.已成功点击结算")
                flag = True
                break
        except:
            pass

if flag==True:
    count = 0
    while True:
        try:
            if browser.find_element_by_link_text("提交订单"):
                browser.find_element_by_link_text("提交订单").click()
                print("1.已成功点击结算")
                flag = True
                print("2.已下单成功,进入付款界面,请尽快手动完成付款")
                done_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
                print("下单时间:", done_time)
                break
        except:
            count +=1
            print("未成功进入付款界面,再次尝试! 已尝试",count)
            if count == 600:
                break
            pass

tips: 脚本使用前请先设置脚本运行时间,就是times = 设置的时间(不得早于实际时间,否则脚本运行无效)
这是一个抢购脚本,它使用了 Selenium 模拟用户操作,抢购商品。

  • datetime 模块是 python 自带的时间模块,用于获取当前时间,对比目标时间。

  • sleep 函数来自 time 模块,可以暂停代码执行一段时间,用于让程序等待模拟人类操作的时间。

  • webdriver 是 Selenium 的核心模块,提供了操作浏览器的 API,包括打开浏览器,点击,查找元素等等。

  • browser.get 函数用于打开一个 URL。

  • browser.find_element_by_xpath 用于在页面中查找元素,通过元素的 xpath 定位。

  • browser.find_element_by_id 用于在页面中查找元素,通过元素的 id 定位。

  • browser.find_element_by_link_text 用于在页面中查找元素,通过元素的文字内容定位。

  • browser.click 用于模拟鼠标点击元素。

  • 此脚本中,还有多个 while 循环,用于检查元素是否存在,如果不存在,则继续循环。

  • 此脚本仅用于学习和演示目的,不得用于任何实际环境或支付环节!

以下是代码的详细解释

使用 python3 和 selenium 库编写的爬虫脚本,主要目的是实现抢购商品的自动化操作。

代码的主要流程如下:

导入所需的库:
import datetime:用于处理时间的库。
from time import sleep:sleep函数用于延时,方便登陆等操作。
from selenium import webdriver:selenium库是一个自动化测试框架,此代码中使用到了它的 webdriver 模块。
设置变量和程序提示信息:
flag 变量用于标识抢购是否成功。
times 变量是秒杀的时间,此处是一个字符串,格式为“YYYY-MM-DD HH:MM:SS”。
程序提示信息:通过 print() 函数,在控制台输出一些程序的使用说明和目标时间,以方便使用者了解程序的作用。
浏览器的自动化操作:
browser = webdriver.Chrome():打开 Chrome 浏览器。
browser.get('https://login.taobao.com/'):打开淘宝登陆页面。
sleep(2):等待2秒,方便用户完成登陆操作。
browser.find_element_by_xpath("/html/body/div/div[2]/div[3]/div/div/div/div[1]/i").click():通过 xpath 定位元素并点击,完成扫码登陆操作。
sleep(16):等待16秒,以等待登陆成

以上仅是用一种方式写了一个非常简单的脚本,大家可以按差不多的思路使用requests库,改写这个脚本哦~文章来源地址https://www.toymoban.com/news/detail-798735.html

到了这里,关于天猫商城自动化python脚本(仅供初学者学习使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python医院自动化抢号脚本

    挂号自动化脚本思路 1.登录华西医院网页 。 2.自动登录,向手机发送验证码,等待输入后登录 3.进入倒计时 4.到时进入医生主页 5.确定预约进入预约界面 6.选择健康卡并获取图形码 7.利用ddddocr包识别图形码并输入 8.最后确认并结束 9.完整代码链接如下 python医院挂号自动化脚

    2024年02月11日
    浏览(37)
  • selenium(4)-------自动化测试脚本(python)

    webdriverAPI 一)定位元素的方式,必问 1.1)id来定位元素,前提是元素必须具有id属性,因为有的元素是没有id的 1.2)name,元素必须有name,并且必须全局唯一 1.3)tagname,元素是一定有的,但是必须全局唯一才可以定位到元素 1.4)classname,class的名字,必须全局唯一 1.5)link_text,通过

    2024年02月02日
    浏览(42)
  • python自动化办公--文件整理脚本详解

    今天讲解文件整理脚本的实现过程。这是一个很有用的技能,可以帮助你管理你的电脑上的各种文件。需求如下: 需求内容:给定一个打算整理的文件夹目录,这个脚本可以将该目录下的所有文件都揪出来,并且根据后缀名归类到不同的文件夹里。 python能力:使用python的内

    2024年02月10日
    浏览(60)
  • 5个实用的自动化Python脚本

    Python 是一种功能强大的语言,广泛用于自动执行各种任务。无论您是开发人员、系统管理员,还是只是想通过自动化日常任务来节省时间的人,Python 都能满足您的需求。 这里有 5 个 Python 脚本,可以帮助您自动执行各种任务。 Python 中的文件传输脚本是一组指令或用 Python 编

    2024年02月14日
    浏览(30)
  • selenium(7)----自动化测试脚本(python版本)

    1)HTML报告的生成:测试报告最好要生成在一个特殊的目录下面 1)在python的lib文件下面添加文件是HTMLTestRunner.py文件: self就是当前类中的实例 2)HTML报告的生成步骤: 2.1)解决HTML文件存放的问题:创建一个文件夹 2.2)HTML报告命名问题,如何进行动态命名,每一次生成的文件名称如何不

    2024年01月21日
    浏览(34)
  • 10 个杀手级的 Python 自动化脚本

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化脚本。 所以,请你把这篇文章放在你的收藏清单上,以备不时之需,

    2024年02月19日
    浏览(37)
  • 用于自动化的 10 个杀手级 Python 脚本

    用于自动化的 10 个杀手级 Python 脚本 您是否厌倦了在繁琐的任务上浪费时间? 您是否梦想着一个计算机为您完成所有工作的世界?别无所求,因为我们有 5 个 Python 脚本,准备好告别体力劳动,自动化开始吧! “自动化不是人类工人的敌人,而是盟友。自动化将工人从苦差

    2023年04月27日
    浏览(28)
  • 10 个超级高效实用的 Python 自动化脚本!

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化脚本。 所以,请你把这篇文章放在你的收藏清单上,以备不时之需。

    2024年02月08日
    浏览(44)
  • python+pytest接口自动化(12)-自动化用例编写思路 (使用pytest编写一个测试脚本)

    经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路。 我们在百度搜索 天气查询 ,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接口测试用例脚本。 针对某个功能做接口测试,首先我们需

    2024年02月04日
    浏览(48)
  • 使用Python+selenium实现第一个自动化测试脚本

    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近在学web自动化,记录一下学习过程。 此处我选用python3.6+selenium3.0,均用

    2024年02月03日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包