国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python selenium 模擬瀏覽器自動操作搶購腳本

這篇具有很好參考價值的文章主要介紹了python selenium 模擬瀏覽器自動操作搶購腳本。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

每逢秒殺,都在遺憾網(wǎng)速和手速慢沒能搶購到商品吧。

手寫一個腳本,讓程序幫你搶,搶到的概率會大大提升。

廢話不多說,直接上代碼。

本實例以華為官網(wǎng)搶購手機為例文章來源地址http://www.zghlxwxcb.cn/news/detail-705490.html

"""
模擬瀏覽器操作華為官網(wǎng)

(1) 【只需要安裝一種driver即可】 
one: 安裝 chromedriver 
a. 去官網(wǎng) (http://chromedriver.storage.googleapis.com/index.html) 下載對應版本的driver
b. 解壓后將exe文件放入本地谷歌瀏覽器的安裝目錄 例如: C:\Program Files\Google\Chrome\Application
c. 配置將谷歌安裝目錄配置到系統(tǒng)環(huán)境變量的Path中
two: 安裝 edgedriver
a.去官網(wǎng)  (https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/) 下載對應版本的driver
b. 解壓后將exe文件放入Edge瀏覽器的安裝目錄 例如: C:\Program Files (x86)\Microsoft\Edge\Application

(2) 安裝python
(3) 安裝 selenium 
    指令: pip install selenium
(4) 打開此文件, 修改    賬號參數(shù): userName, password 手機搶購頁面鏈接參數(shù): phonePageUrl 搶購時間參數(shù): buyTimeStr
(5) 設置號華為官網(wǎng)的收貨地址
"""

from selenium import webdriver
from selenium.webdriver.common import by
import time
import re

 driver = webdriver.Chrome()
# driver = webdriver.Edge()
elementBy = by.By()
# 賬號
userName = "134*****38"
password = "l*****6"
# 首頁
indexUrl = "https://www.vmall.com/index.html"
# 想要搶購的手機頁面
# phonePageUrl = "https://www.vmall.com/product/10086213682650.html#2601010448909"
phonePageUrl = "https://www.vmall.com/product/comdetail/index.html?prdId=10086238622707&sbomCode=2601010388226"
# 提交訂單url
submitOrderUrl = "/order/nowConfirmcart"
buyTimeStr = "2023-07-13 20:00:00"

def main():
    # 先登錄
    login()
    # 指定時間, 未到時間則阻塞
    curTime = time.time()
    buyTime = time.mktime(time.strptime(buyTimeStr,"%Y-%m-%d %H:%M:%S"))
    while curTime < buyTime : 
        print("當前時間戳:{}, 搶購時間戳:{}".format(curTime,buyTime) , end="\n")
        time.sleep(10)
        curTime = time.time()
    # 搶購
    if re.search("comdetail", phonePageUrl) is not None :
        buyTwo()
    else :
        buy()
    

def login():
    print("登錄")
    driver.get(indexUrl)
    time.sleep(5)
    # pc網(wǎng)頁
    indexLoginBns = driver.find_elements(elementBy.CLASS_NAME, "r-gy4na3")
    if not indexLoginBns: 
        for bn in indexLoginBns:
            if bn.text == "請登錄":
                bn.click()
                break
    else :
        # 移動網(wǎng)頁
        indexLoginBns = driver.find_elements(elementBy.CLASS_NAME,"r-1ff274t")
        for bn in indexLoginBns:
            if bn.text == "登錄":
                bn.click()
                break

    time.sleep(5)
    loginElements = driver.find_elements(elementBy.CSS_SELECTOR, ".hwid-input-root")
    for e in loginElements:
        inputele = e.find_element(elementBy.TAG_NAME, "input")
        attr = inputele.get_attribute("type")
        if attr == "text":
            inputele.send_keys(userName)
        elif attr == "password":
            inputele.send_keys(password)

    loginBtnElement = driver.find_element(elementBy.CSS_SELECTOR, ".hwid-login-btn")
    loginBtnElement.click()
    #需要手機驗證碼 
    # 此處手動完成驗證碼驗證 預留一分鐘
    time.sleep(60)
    print("登錄成功")


"""
華為商品頁不統(tǒng)一,此方法為搶購按鈕是立即下單的
"""
def buy():
    driver.get(phonePageUrl)
    time.sleep(5)
    print("打開指定手機 --> 準備搶購")
    driver.refresh()
    time.sleep(5)
    buyBtns = driver.find_elements(elementBy.CLASS_NAME, "product-button02")
    cur_url = driver.current_url
    canBuy = False
    if buyBtns is None:
        print("無法獲取下單按鈕")
        return

    time.sleep(2)
    # 如果沒有進入提交訂單頁面則一直點擊立即下單
    buyCountNum = 1
    while not re.search(submitOrderUrl, cur_url) and not canBuy :
        for buybn in buyBtns:
            if buybn.find_element(elementBy.TAG_NAME, "span").text == "立即下單" :
                # 此元素被設置了javascript:; , 所以click()無法觸發(fā),只能通過執(zhí)行execute_script執(zhí)行網(wǎng)頁js方法
                driver.execute_script('ec.product.orderNow(null,null,this)')
                # buybn.click()
                canBuy = True
                print("點擊下單按鈕次數(shù): {}".format(buyCountNum))
                buyCountNum += buyCountNum
                break

    if canBuy == True :
        # 預留時間選地址
        time.sleep(5)
        submitBtn = driver.find_element(elementBy.CLASS_NAME,"order-submit-btn")
        if submitBtn is None: 
            print("無法提交訂單")              
        else :
            print("提交訂單")
            # submitBtn.click()
            driver.execute_script("ec.order.submit();")
                    
        # 預留時間等待提交響應結(jié)束
        time.sleep(60) 

"""
華為商品頁不統(tǒng)一,此方法為搶購按鈕是立即購買的
此商品詳情每一步都會新開頁面
""" 
def buyTwo() :
    driver.get(phonePageUrl)
    time.sleep(5)
    print("打開指定手機 --> 準備搶購")
    driver.refresh()
    time.sleep(5)
    cur_url = driver.current_url
    canBuy = False

    time.sleep(2)
    # 如果沒有進入提交訂單頁面則一直點擊立即下單
    buyCountNum = 1

    buyButtonScript = """
        this.document
        .getElementsByClassName("css-901oao r-jwli3a r-1i10wst r-13uqrnb r-16dba41 r-oxtfae r-rjixqe r-6dt33c r-lrvibr")[0]
        .click();
    """

    while not re.search(submitOrderUrl, cur_url) and not canBuy :
        # 通過執(zhí)行execute_script執(zhí)行網(wǎng)頁js方法
        driver.execute_script(buyButtonScript)
        # 預留反應時間
        time.sleep(2)
        # 切換到最右邊的網(wǎng)頁窗口
        driver.switch_to.window(driver.window_handles[-1])
        cur_url = driver.current_url
        print("點擊下單按鈕次數(shù): {}".format(buyCountNum))
        buyCountNum += buyCountNum
        if re.search(submitOrderUrl, cur_url) is not None :
            canBuy = True
            break

    if canBuy == True :
        # 切換到最右邊的網(wǎng)頁窗口
        driver.switch_to.window(driver.window_handles[-1])
        # 預留時間選地址
        time.sleep(5)
        submitBtn = driver.find_element(elementBy.CLASS_NAME,"order-submit-btn")
        if submitBtn is None: 
            print("無法提交訂單")              
        else :
            print("提交訂單")
            # submitBtn.click()
            driver.execute_script("ec.order.submit();")

        # 預留時間等待提交響應結(jié)束
        time.sleep(60) 
    

# 運行主函數(shù)
main()

到了這里,關于python selenium 模擬瀏覽器自動操作搶購腳本的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • selenium+python自動化測試之使用webdriver操作瀏覽器的方法

    selenium+python自動化測試之使用webdriver操作瀏覽器的方法

    WebDriver簡介 selenium從2.0開始集成了webdriver的API,提供了更簡單,更簡潔的編程接口。selenium webdriver的目標是提供一個設計良好的面向?qū)ο蟮腁PI,提供了更好的支持進行web-app測試。從這篇博客開始,將學習使用如何使用python調(diào)用webdriver框架對瀏覽器進行一系列的操作 打開瀏覽

    2024年01月25日
    瀏覽(28)
  • 一個完整Python實戰(zhàn)項目:selenium識別驗證碼實現(xiàn)自動登錄,自動操作瀏覽器獲取某東數(shù)據(jù)

    一個完整Python實戰(zhàn)項目:selenium識別驗證碼實現(xiàn)自動登錄,自動操作瀏覽器獲取某東數(shù)據(jù)

    最近都沒啥時間,很久沒更新了。 今天分享一下,如何用selenium識別驗證碼,實現(xiàn)自動登錄以及獲取數(shù)據(jù)。 目標:某東 話不多說直接開始 環(huán)境 Python 3.10 Pycharm 模塊使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 輸入cmd 輸入安

    2024年02月04日
    瀏覽(32)
  • 瀏覽器常用基本操作之python3+selenium4自動化測試(基礎篇)

    瀏覽器常用基本操作之python3+selenium4自動化測試(基礎篇)

    1、打開指定的網(wǎng)頁地址 我們使用selenium進行自動化測試時,打開瀏覽器之后,第一步就是讓瀏覽器訪問我們指定的地址,可使用get方法實現(xiàn) 1 2 3 from selenium import webdriver driver = webdriver.Edge() driver.get( \\\'https://www.baidu.com/\\\' )?? # 本行用于訪問指定的地址 2、獲取當前頁面url 我們在

    2024年02月01日
    瀏覽(93)
  • selenium-chromedriver如何安裝(自動模擬瀏覽器程序)

    selenium-chromedriver如何安裝(自動模擬瀏覽器程序)

    selenium是一種自動模擬瀏覽器的程序,它可以代替你的手去完成一些反復無聊的點擊以及其他動作!很多小伙伴不知道selenium怎么用,這里講解一下selenium的chromedriver的安裝方法: 首先要下載一個谷歌瀏覽器,我直接把谷歌瀏覽器的官網(wǎng)給搬過來了:https://www.google.cn/chrome/ 我們

    2024年02月13日
    瀏覽(88)
  • selenium自動化原理應用 - 利用 requests 模擬 selenium 驅(qū)動瀏覽器

    selenium自動化原理應用 - 利用 requests 模擬 selenium 驅(qū)動瀏覽器

    selenium是一個web自動化測試的開源框架,它支持多語言:python/java/c#… 前面也有一篇文章說明了,selenium+瀏覽器的環(huán)境搭建。 selenium支持多語言,是因為selenium與瀏覽器驅(qū)動之間是通過http協(xié)議進行通信的。只關心通信的數(shù)據(jù)是否能夠正確解讀 ,并不關心這個數(shù)據(jù)是從哪個客戶

    2024年02月03日
    瀏覽(22)
  • [爬蟲]2.2.1 使用Selenium庫模擬瀏覽器操作

    [爬蟲]2.2.1 使用Selenium庫模擬瀏覽器操作

    Selenium是一個非常強大的工具,用于自動化Web瀏覽器的操作。它可以模擬真實用戶的行為,如點擊按鈕,填寫表單,滾動頁面等。由于Selenium可以直接與瀏覽器交互,所以它可以處理那些需要JavaScript運行的動態(tài)網(wǎng)頁。 首先,我們需要安裝Selenium庫。你可以使用pip命令來安裝:

    2024年02月16日
    瀏覽(97)
  • 從零開始學習Python控制開源Selenium庫自動化瀏覽器操作,實現(xiàn)爬蟲,自動化測試等功能(一)

    從零開始學習Python控制開源Selenium庫自動化瀏覽器操作,實現(xiàn)爬蟲,自動化測試等功能(一)

    介紹Selenium : Selenium是一個用于自動化瀏覽器操作的開源工具和庫。它最初是為Web應用測試而創(chuàng)建的,但隨著時間的推移,它被廣泛用于Web數(shù)據(jù)抓取和網(wǎng)頁自動化操作。Selenium 支持多種編程語言,包括Python,Java,C#等。 這里我們主要實現(xiàn)采用Python的方式 Selenium 的主要特點和

    2024年01月22日
    瀏覽(92)
  • Selenium庫快速查找網(wǎng)頁元素及執(zhí)行瀏覽器模擬操作

    Selenium 是一個自動化測試工具,主要用于模擬用戶在網(wǎng)頁上的行為,進行自動化測試。 它支持多種瀏覽器,并且可以在多種操作系統(tǒng)上運行。以下是 Selenium 庫的一些主要特點和用途: 網(wǎng)頁自動化測試: Selenium 可以模擬用戶在網(wǎng)頁上的各種操作,如點擊、輸入文本、選擇下拉

    2024年04月23日
    瀏覽(34)
  • python 爬蟲熱身篇 使用 requests 庫通過 HTTP 讀取網(wǎng)絡數(shù)據(jù),使用 pandas 讀取網(wǎng)頁上的表格,使用 Selenium 模擬瀏覽器操作

    python 爬蟲熱身篇 使用 requests 庫通過 HTTP 讀取網(wǎng)絡數(shù)據(jù),使用 pandas 讀取網(wǎng)頁上的表格,使用 Selenium 模擬瀏覽器操作

    在過去,收集數(shù)據(jù)是一項繁瑣的工作,有時非常昂貴。機器學習項目不能沒有數(shù)據(jù)。幸運的是,我們現(xiàn)在在網(wǎng)絡上有很多數(shù)據(jù)可供我們使用。我們可以從 Web 復制數(shù)據(jù)來創(chuàng)建數(shù)據(jù)集。我們可以手動下載文件并將其保存到磁盤。但是,我們可以通過自動化數(shù)據(jù)收集來更有效地做

    2023年04月08日
    瀏覽(98)
  • python爬蟲之selenium模擬瀏覽器

    python爬蟲之selenium模擬瀏覽器

    之前在異步加載(AJAX)網(wǎng)頁爬蟲的時候提到過,爬取這種ajax技術的網(wǎng)頁有兩種辦法:一種就是通過瀏覽器審查元素找到包含所需信息網(wǎng)頁的真實地址,另一種就是通過selenium模擬瀏覽器的方法[1]。當時爬的是豆瓣,比較容易分析出所需信息的真實地址,不過一般大點的網(wǎng)站像

    2024年02月03日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包