欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python之京東商品秒殺的實(shí)現(xiàn)示例

 更新時(shí)間:2021年01月06日 14:17:13   作者:相思比夢(mèng)長(zhǎng)  
這篇文章主要介紹了Python之京東商品秒殺的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1 環(huán)境

操作系統(tǒng):Windows 10
Python版本:3.9.0
Google Chrome  87.0.4280.88
ChromeDriver  87.0.4280.88
PyCharm 2020.2.3 x64

2 需求分析&前期準(zhǔn)備

2.0 需求分析

目標(biāo)是秒殺京東的訂單,這里面有幾個(gè)關(guān)鍵點(diǎn),首先需要登錄京東,其次你需要準(zhǔn)備好訂單,最后要在指定時(shí)間快速提交訂單。
登錄京東,這里就要用到一個(gè)爬蟲(chóng)利器Selenium,它是一個(gè)自動(dòng)化測(cè)試工具,利用它我們可以驅(qū)動(dòng)瀏覽器執(zhí)行特定的動(dòng)作,如點(diǎn)擊、下拉等等操作,所見(jiàn)即所得。另外對(duì)于一些 JavaScript 渲染的頁(yè)面來(lái)說(shuō),此種抓取方式非常有效。

2.1 Selenium的安裝

Selenium 的安裝很簡(jiǎn)單,dos命令行:

pip3 install selenium

Selenium安裝好之后,并不能直接使用,它需要與瀏覽器進(jìn)行對(duì)接。這里拿Chrome瀏覽器為例。若想使用Selenium成功調(diào)用Chrome瀏覽器完成相應(yīng)的操作,需要通過(guò)ChromeDriver來(lái)驅(qū)動(dòng)。

2.2 ChromeDriver的安裝

這里是ChromeDriver的官方下載地址。

鏈接:https://chromedriver.storage.googleapis.com/index.html
下載之前先來(lái)確認(rèn)下我們使用的Chrome瀏覽器版本。

通過(guò)ChromeDriver的下載鏈接,找到與之對(duì)應(yīng)的Chrome瀏覽器版本,根據(jù)你電腦系統(tǒng)的平臺(tái)類(lèi)型進(jìn)行下載。

下載完成之后,解壓,將其放置在Python安裝路徑下Scripts文件夾中即可

用PyCharm執(zhí)行如下代碼:

from selenium import webdriver
# 打開(kāi)Chrome瀏覽器
driver = webdriver.Chrome()

成功打開(kāi)瀏覽器,則證明ChromeDriver版本沒(méi)問(wèn)題,即可正常使用Selenium。

from selenium import webdriver
import datetime
import time
# 打開(kāi)Chrome瀏覽器
driver = webdriver.Chrome()
 
def auto_buy(username, password, purchase_list_time):
  print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "打開(kāi)登陸界面")
  driver.get("https://passport.jd.com/new/login.aspx")
  print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "開(kāi)始填寫(xiě)賬號(hào)密碼")
  driver.find_element_by_link_text("賬戶(hù)登錄").click()
  driver.find_element_by_name("loginname").send_keys(username)
  driver.find_element_by_name("nloginpwd").send_keys(password)
  driver.find_element_by_id("loginsubmit").click()
  #print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "手動(dòng)拼圖驗(yàn)證")
  #time.sleep(10) #此處睡眠時(shí)間用來(lái)手動(dòng)拼圖驗(yàn)證
  print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),"登陸成功")
  print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "等待時(shí)間到達(dá)搶購(gòu)時(shí)間:",purchase_list_time, "......")
  while True:
    count = 0
    for buytime in purchase_list_time:
      nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
      if nowtime == buytime:
        try:
          count += 1
          print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "開(kāi)始第 %s 次搶購(gòu)......"%count)
          print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "打開(kāi)購(gòu)物車(chē)并選中商品")
          driver.get("https://cart.jd.com/cart_index") # 打開(kāi)購(gòu)物車(chē)并選中商品
          # 如果沒(méi)有全選,點(diǎn)擊全選
          if not driver.find_element_by_class_name('jdcheckbox').is_selected():
            driver.find_element_by_class_name('jdcheckbox').click()
          print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "點(diǎn)擊去結(jié)算")
          driver.find_element_by_link_text("去結(jié)算").click() # 去結(jié)算
          print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "點(diǎn)擊提交訂單")
          time.sleep(5)  #提交訂單前必須等待幾秒【感覺(jué)跟電腦性能快慢有關(guān),不卡的電腦可以適當(dāng)降低嘗試】
          if driver.find_element_by_id("order-submit"):
            driver.find_element_by_id("order-submit").click() # 提交訂單
          print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),"訂單提交成功,請(qǐng)前往訂單中心待付款付款")
          print("")
          continue
        except Exception as e:
          print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "搶購(gòu)出現(xiàn)異常,重新?lián)屬?gòu): ", e)
          continue
    time.sleep(0.001)
 
purchase_list_time = [
  "2020-12-25 10:00:00",
  "2020-12-25 10:00:01",
  "2020-12-25 10:00:02",
  "2020-12-25 10:00:03",
  "2020-12-25 10:00:04",
  "2020-12-25 10:00:05",
]
auto_buy('帳號(hào)', '密碼', purchase_list_time)

預(yù)約商品到購(gòu)物車(chē)——>修改代碼搶購(gòu)時(shí)間——>用PyCharm運(yùn)行代碼即可。

到此這篇關(guān)于Python之京東商品秒殺的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python 京東商品秒殺內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3實(shí)現(xiàn)點(diǎn)餐系統(tǒng)

    python3實(shí)現(xiàn)點(diǎn)餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)點(diǎn)餐系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫(xiě)for的方法

    tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫(xiě)for的方法

    今天小編就為大家分享一篇tensorflow 用矩陣運(yùn)算替換for循環(huán) 用tf.tile而不寫(xiě)for的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Python實(shí)現(xiàn)繪制多角星實(shí)例

    Python實(shí)現(xiàn)繪制多角星實(shí)例

    這篇文章要給大家分享Python實(shí)現(xiàn)繪制多角星的實(shí)例,在具備一定的Python編程基礎(chǔ)以后,我們可以結(jié)合for循環(huán)進(jìn)行多角星的編寫(xiě),只要簡(jiǎn)單的幾次循環(huán),即可以極大的解決重復(fù)編寫(xiě)相同代碼方面的問(wèn)題,下面小編將以三角星,五角星為例,進(jìn)而引入如何繪制多角星,需要的朋友可以參考一下
    2021-11-11
  • Python 畫(huà)出來(lái)六維圖

    Python 畫(huà)出來(lái)六維圖

    這篇文章主要介紹了Python 畫(huà)出來(lái)六維圖,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python圖像運(yùn)算之圖像灰度直方圖對(duì)比詳解

    Python圖像運(yùn)算之圖像灰度直方圖對(duì)比詳解

    本篇文章將結(jié)合直方圖分別對(duì)比圖像灰度變換前后的變化,方便大家更清晰地理解灰度變換和閾值變換,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-08-08
  • python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式詳解

    python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式詳解

    這篇文章主要給大家介紹了關(guān)于python如何使用正則表達(dá)式的前向、后向搜索及前向搜索否定模式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-11-11
  • 詳解Python多線(xiàn)程下的list

    詳解Python多線(xiàn)程下的list

    這篇文章主要介紹了Python多線(xiàn)程下的list的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Django開(kāi)發(fā)web后端對(duì)比SpringBoot示例分析

    Django開(kāi)發(fā)web后端對(duì)比SpringBoot示例分析

    這篇文章主要介紹了Django開(kāi)發(fā)web后端對(duì)比SpringBoot示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 使用python?matplotlib畫(huà)折線(xiàn)圖實(shí)例代碼

    使用python?matplotlib畫(huà)折線(xiàn)圖實(shí)例代碼

    Matplotlib是一個(gè)Python工具箱,用于科學(xué)計(jì)算的數(shù)據(jù)可視化,下面這篇文章主要給大家介紹了關(guān)于如何使用python?matplotlib畫(huà)折線(xiàn)圖的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • Python實(shí)現(xiàn)多腳本處理定時(shí)運(yùn)行

    Python實(shí)現(xiàn)多腳本處理定時(shí)運(yùn)行

    這篇文章主要介紹了Python實(shí)現(xiàn)多腳本處理定時(shí)運(yùn)行,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-06-06

最新評(píng)論