python click()打开新网页_618如何毫秒级秒杀商品(Python)

618快到了,如何快读秒到心仪商品

首先需要配置python环境,本文选择简单又好用的anaconda开发环境,下载地址:https://www.anaconda.com/

下载完后傻瓜式下一步安装即可

4683a64cfc51d1d0fd3476944bbd7479.png

安装完成后运行Jupyter Notebook即可打开python编程环境。

开发之前咱们还需要安装一个模块叫做Selenium。这个模块是以一个仿真操作网页的库。可以非常快速的开发网页程序。

下载需要用pip安装,首先打开安装需要的命令符环境

1c34103dcf04d0de24f5c808e604c555.png

pip install selenium

868122ab8fce0cfdded4480282008438.png

由于我已经安装好了,所以提示我requirement already satisfied

Selenium安装好之后,需要配合相应浏览器使用,本文选用Chrome浏览器

731c30e9493a968cecbfe72ce4f190c6.png

之后需要下载ChromeDriver驱动。下图为chrome版本号对应的驱动型号。

b0722266d9a27cf0d36d7d9140fecd4f.png

国内驱动库下载地址:

http://chromedriver.storage.googleapis.com/index.html

下面开始创建python3程序

d54045f7ea09bc7bcc7026340c985151.png

创建成功后可以改名字并且将代码敲入下方:

74d99e93336dafe25bde359586e86e69.png

手下需要引入库文件,就像插件一样,python3本身功能有限,想要快速开发必须有一些快捷的插件。下面代码引入了selenium的部分插件

from selenium import webdriverimport datetimefrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC

之后想要试验浏览器驱动成功没有执行下面代码

browser = webdriver.Chrome()

如果系统弹出了chrome浏览器,则表明成功一半了。

下面开始解释秒杀的基本代码:

上面的代码已经定义了打开浏览器的变量browser,那么后面想执行浏览器界面的操作都得围绕着这个变量来。这个变量集成了webdriver的功能。

那么webdriver哪里来的呢,在我们文件开始我们写了一个

from selenium import webdriver

实际上就是导入selenuim的webdriver功能

下面我们开始用我们生成的brower(继承了webdriver的功能)的get功能

get可以打开我们想要的页面。

browser.get("https://www.taobao.com")browser.find_element_by_link_text("亲,请登录").click()

find_element_by_link_text:

要想解释这句的功能我们需要打开浏览器,按F12

d40e8e76c81381588db27c612b6493ef.png

我们找到全选对应的id

d40bb561f558eb496a0ce34398884329.png

e809a542cd761ebf5e66ec47e2bf5df7.png对应的id号为J_SelectAll1

browser.find_element_by_id("J_SelectAll1").click()browser.find_element_by_link_text("结 算").click()browser.find_element_by_link_text('提交订单').click()

之后我们执行代码find_element_by_id,就是寻找这个ID的按钮然后click点击

之后我们还要寻找结算和提交订单两个按钮,这样才能完成整个下单动作。

find_element_by_link_text

这条语句就是按照链接文本寻找按钮

df054c5ba979e861a0c639fcb1f8cee1.png

我们发现是结空格算。

以上就实现了整个下单过程。但是只能手动点击运行。做不到过了0点自动下单。所以我们就需要程序调整时间了

import datetimenow = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

第一句是导入时间相关的库文件

第二句是获取现在的时间

我们把程序打印出来看看效果

4fbb4eacca5b98690b6f9216a1e2f699.png

获取了一个十分精确的时间

以上代码组合一下再加上一定的逻辑就可以实现我们秒杀的功能了,下面加入一些代码将功能写完整

def miaosha(times):

def是python的函数定义字符,表明现在写的是个函数,python没有{}所以写的过程中空格很重要。

miaosha是我们的函数名字,可以自己改,times是指定时间。可以使2020-06-16 0:0:0开始

    while True:

无限循环

now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

获取当前时间

if now > times:

如果一过0点,也就是当前时间比我们定义的时间大了则

while True:

继续循环,因为秒杀要不断的刷新页面

try:

字面理解就是试试,一般程序一旦错误就停止了,但是try不会,错了就不执行执行下面的。

if browser.find_element_by_link_text("结 算"):

由于加载界面不一定能加载完,所以这里我们放了个if,如果找到结算这个按钮就继续,找不到继续加载界面。这样避免网页延迟加载不出来的情况。

browser.find_element_by_link_text("结 算").click()print(f"结算成功,准备提交订单")

第一句之前说过点击结算按钮,第二个是打印,因为咱们也不知道电脑到底下没下单,也不敢问呀!所以让它自己说,print就是一个显示功能函数 如果执行完下单后则显示我们想要的字符串。

break

 while true是无限循环。要跳出循环就得用break

结算还没完,得提交订单    

while True:     try:     if browser.find_element_by_link_text('提交订单'):       browser.find_element_by_link_text('提交订单').click()       print("抢购成功")   time.sleep(0.01)

一样的套路。提交订单部分商品的秒杀基本上搞定了。可以说是毫秒级秒杀也不为过,但是还要看咱们网速的快慢,毕竟要架在界面么。浏览器得能看到结算按钮才行。对了最后一句 time.sleep(0.01)意思是延迟0.01秒的意思。不能太快了,要给别人点机会。当然如果没有这句的话电脑将会以最快速度点击提交订单。

推荐三本python网络编程的图书,可以爬取各种网络数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值