【紧急情况】:回宿舍放下书包的我,花了20分钟敲了一个抢购脚本

news/2024/7/19 8:41:20 标签: python, chrome, 爬虫

文章目录

  • 情况紧急 ⁉️
  • 抢❗️抢❗️抢❗️
    • 开抢时间说明💨
    • 开抢过程💥
      • Get_cookie.py
      • 开抢
  • 结束语😱

情况紧急 ⁉️


不管你信不信,这就是俺刚瞧出的代码!!!
现在离20:00还有38分钟!!!
我现在在飞速的敲着文字,本来想着今晚简简单单买个东西就好,结果一看某宝,发现我想买的衣服有0元抢购的活动!!!

在这里插入图片描述
于是,刚吃完饭领完快递的我一到宿舍就开始劈里啪啦的敲起了代码,敲完代码后又进行一遍编的测试,终于将代码调试成功了。
具体实现如何,请往下看👇

抢❗️抢❗️抢❗️

本次代码实现的功能是抢某宝的商品,需要先将商品加入购物车,然后根据用户输入的开抢时间进行任务等待,时间一到,立即开抢!!!
注意:先设置好默认收货地址,然后将商品加入购物车!!!

开抢时间说明💨

在这里插入图片描述

开抢过程💥

Get_cookie.py

Get_cookie.py – 老朋友又来了,《小玩意儿》专栏中已经说烂咯,那在这就简单说明一下吧:
20秒内登录某宝,获取登录后的Cookie,保存为taobao_cookies.txt,这是实现自动登录前的必须一个步骤。

直接拿走💪

from selenium import webdriver
from time import sleep
import json

if __name__ == '__main__':
  driver = webdriver.Chrome()
  driver.maximize_window()
  driver.get('https://login.taobao.com/member/login.jhtml?')
  sleep(20)

  dictCookies = driver.get_cookies() # 获取list的cookies
  jsonCookies = json.dumps(dictCookies) # 转换成字符串保存
  with open('taobao_cookies.txt', 'w') as f:
    f.write(jsonCookies)
  print('cookies保存成功!')

开抢

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import datetime
import time
import json


class Taobao(object):
    def __init__(self):
        # 登入以下网址即可直接跳转到购物车
        self.url = 'https://cart.taobao.com/cart.htm?'
        self.driver = webdriver.Chrome()
        self.driver.get(self.url)
        self.driver.maximize_window()
    # 自动登录
    def login(self):
        # 获取保存下的cookie值
        with open('taobao_cookies.txt', 'r', encoding='utf8') as f:
            listCookies = json.loads(f.read())

        # 往browser里添加cookies
        for cookie in listCookies:
            cookie_dict = {
                'domain': '.taobao.com',
                'name': cookie.get('name'),
                'value': cookie.get('value'),
                "expires": '',
                'path': '/',
                'httpOnly': False,
                'HostOnly': False,
                'Secure': False
            }
            self.driver.add_cookie(cookie_dict)

        self.driver.refresh()

        # 等待快速登录按钮出现并点击
        WebDriverWait(self.driver, 1000).until(
            EC.presence_of_element_located((By.XPATH, '//div[@class="fm-btn"]/button'))
        )
        self.driver.find_element(By.XPATH, '//div[@class="fm-btn"]/button').click()

    def shopping_cart(self):

            # 设定时间等待,等到时间到了立即开抢
        startTime = datetime.datetime(2022, 11, 10, 20, 0, 1)
        print('正在等待开抢...')
        while datetime.datetime.now() < startTime:
            time.sleep(1)

        # 点击全选
        WebDriverWait(self.driver, 1000).until(
            EC.presence_of_element_located((By.XPATH, '//div[@id="J_SelectAll1"]'))
        )
        self.driver.find_element(By.XPATH, '//div[@id="J_SelectAll1"]').click()

        # 等待结算按钮出现后点击
        WebDriverWait(self.driver, 1000).until(
            EC.element_to_be_clickable((By.XPATH, '//a[@id="J_Go"]'))
        )
        self.driver.find_element(By.XPATH, '//a[@id="J_Go"]').click()
        time.sleep(0.5)
        try:
            self.driver.find_element(By.XPATH, '//a[@id="J_Go"]').click()
        except:
            pass

        WebDriverWait(self.driver, 1000).until(
            EC.element_to_be_clickable((By.LINK_TEXT, '提交订单'))
        )
        # 等待“提交订单”元素加载完毕后点击
        self.driver.find_element(By.LINK_TEXT, '提交订单').click()

    def run(self):
        self.login()
        self.shopping_cart()


taobao = Taobao()
taobao.run()




结束语😱

如果喜欢,点赞👍 收藏🌈 关注哦💖
话不多说,开抢啦啦啦!!!
在这里插入图片描述


http://www.niftyadmin.cn/n/4808.html

相关文章

怎么进行视频恢复?推荐使用这4种方法

电脑视频怎么恢复&#xff1f;很多朋友在使用电脑的过程中&#xff0c;如果系统或者是存储文件出现问题的话&#xff0c;可能会出现视频丢失的情况。因为在使用电脑运行视频软件时&#xff0c;系统或者存储文件存在一些质量问题从而导致视频丢失。那么想要进行视频恢复&#xf…

一文带你快速了解ptrdiff_t

简介 ptrdiff_t是C/C标准库中定义的一个与机器相关的数据类型。ptrdiff_t类型变量通常用来保存两个指针减法操作的结果。 ptrdiff_t定义在stddef.h&#xff08;cstddef&#xff09;这个文件内。 ptrdiff_t通常被定义为long int类型。 ptrdiff_t定义在C99标准中。 标准库类…

nginx学习:配置文件详解,负载均衡三种算法学习,上接nginx实操篇

文章目录前言一、对上一篇博文的分析二、配置文件分析1. nginx 官方网址&#xff08;很详细&#xff09;2、配置文件&#xff08;全&#xff09;3、配置文件&#xff08;去掉注释&#xff09;4、讲解a、nginx 配置文件有三部分组成b、全局块c、events块d、http块5、http块中loc…

11-js事件基础

文章目录一、事件概念二、事件绑定方式1. onxxx2. 事件监听器 addEventListener三、事件解绑方式方法1&#xff1a;覆盖原事件处理&#xff08;置空&#xff09;方法2&#xff1a;移除事件监听器 removeEventListener四、事件派发方式方法1&#xff1a;onxxx方法2&#xff1a;d…

python闭包与装饰器

一、闭包 闭包定义&#xff1a;在函数嵌套(函数内再定义函数)的前提下&#xff0c;内部函数使用了外部函数变量或参数&#xff0c;且外部函数返回了内部函数&#xff0c;则将这个使用了外部函数变量的内部函数称为闭包 闭包作用特点 可以保存外部函数内的变量&#xff0c;不…

热门Java开发工具IDEA入门指南——了解并学习IDE

IntelliJ IDEA&#xff0c;是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具&#xff0c;尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 本…

信息安全技术 关键信息基础设施安全保护要求2022版附下载地址

信息安全技术 关键信息基础设施安全保护要求 2022年10月12日&#xff0c;国家市场监督管理总局&#xff08;国家标准化管理委员会&#xff09;批准GB/T 39204-2022《信息安全技术 关键信息基础设施安全保护要求》&#xff08;以下简称“安全保护标准”&#xff09;推荐性国家标…

孩子升年级难适应?猿辅导语文金牌教研来支招

转眼间&#xff0c;开学已经两个月&#xff0c;不知道孩子们对新学年适应得如何了&#xff1f;猿辅导发现&#xff0c;多数孩子在新环境里&#xff0c;一两个月就适应得很好。但也有的孩子适应得比较慢&#xff0c;一学期下来&#xff0c;感觉还不是很好&#xff0c;这就需要尽…