当前位置: 首页 > news >正文

吕梁网站制作武义建设局网站

吕梁网站制作,武义建设局网站,seo哪家公司好,wordpress 按钮连接在哪里引言​iPhone12pro有望成为2020年末真香机#xff0c;动辄3000元的溢价让不少消费者选择了等待官网调货。除了官方与电商线上平台#xff0c;苹果还采用了线下预约制提货。但每天少的可怜的出货量#xff0c;和不到一秒钟就抢空的预约名额让“老年人”手速的各位望而却步。传…引言​iPhone12pro有望成为2020年末真香机动辄3000元的溢价让不少消费者选择了等待官网调货。除了官方与电商线上平台苹果还采用了线下预约制提货。但每天少的可怜的出货量和不到一秒钟就抢空的预约名额让“老年人”手速的各位望而却步。传统的“先到先得”式的预约方式以实时性队列性模式为特点简单来说也就是我们所说的“先到先得”。Python作为被广泛运用的脚本语言可通过计划任务将操作延时降到最低以最大化获得预约资格的可能性。除了用于Apple官网此教程亦可用于sneaker等球鞋发售平台。本文采用 Selenium自动化测试模块配合Chromedriver实现推荐入门级新手编写。Part 1: 环境配置Python版本3.8pip版本20.2.41.安装Seleniumwindows用户打开cmdmac用户打开Terminal(终端)本文采用windows演示在控制台中输入 pip install seleniumCMD控制台出现如下输出则说明Selenium安装成功安装成功​在控制台中输入python于第一行输入 import selenium​如未出现Module报错则验证Selenium已安装成功。2. 安装chromedriverChromedriver为给予chromium内核用于自动化测试的可编程式浏览器。如果Selenium是大脑那么Cromedriver则是由大脑控制的躯干缺一不可。将下载的文件移入与项目相同的目录下(这里非常重要否则会导致浏览器无法被正确调用)复制chromedriver到项目文件夹​测试代码​运行后如呼出chrome浏览器则说明chromedriver被正确配置​如果你已走到这一步Congrats, 你已经成功一半了Part 2: 检测商店是否可用苹果预约通道将于每天早上6点刷新如果预约名额已满或者商店未到预约时间将会显示如下页面商店不可用​右键检查元素发现如果商店不可用则会出现H1 “我们零售店目前不接受 iPhone 的预约购买。”​判断商店是否可用的逻辑就是这么简单粗暴如果出现这行字则商店不可用反之亦然。下面为实现逻辑代码:​​​运行效果​控制台将每秒输出当前商店的状态​Part 3: 实时获取各零售店的预约情况上文中提到iPhone12 Pro商店预约资格已满下文则使用iPhone 12的页面演示(两者页面布局相同仅链接及部分按钮id不同)进入预约页面观察网页布局​透过观察我们发现在选择颜色以及容量之前选择零售店的按钮是不可用的。第一步我们需要选择需要的颜色以及容量。右键按钮检查元素即可获得改按钮在页面中的绝对位置xpath一下以蓝色 64G举例颜色​容量下一步选择地区。我们通过点击发现如果选择一个城市的零售店下面将会自动列出相应城市的其他零售店所以在第一个选择框我们只需任意选择一个相应城市的零售店。​通过前端代码惊喜地发现苹果把每一家店通过Rxx的形式描述。从某种意义上来说这几个按钮可以帮助我们判断零售店是否可以供我们预约不可用​也就是说如果按钮可以按下则说明预约是可用的相反如果按钮无法按下则当前零售店不可用。整理一下逻辑判断零售店预约情况可被分为三步1.官网预约通道是否开启(part 2 中提到)​2.选择我们想要的颜色以及容量3.选择地区4.判断地区零售店按钮是否可用来返回零售店状态完整实现代码如下try:from selenium import webdriverfrom selenium.webdriver.support.select import Selectfrom selenium.webdriver.chrome.options import Optionsimport prettytable as ptimport osexcept ModuleNotFoundError as e:print(缺少依赖模块正在安装)import osp os.popen(pip install selenium)print(p.read())p os.popen(pip install prettytable)print(p.read())from selenium import webdriverfrom selenium.webdriver.support.select import Selectfrom selenium.webdriver.chrome.options import Optionsimport prettytable as ptimport timeimport threading#初始化浏览器storeOne webdriver.Chrome()storeTwo webdriver.Chrome()storeThree webdriver.Chrome()#初始化状态列表storeStatus pt.PrettyTable()storeStatus.field_names [Name,Status]statusList []#带状态的输出方法def push(info, flag):type {SUCCESS:32,WARNING:33,FAILED:31}color type[flag]localtime time.asctime( time.localtime(time.time()) )print(\033[0;%s;40m\t % colorlocaltime: info\033[0m )#判断商店是否可用def isResAvaliable(b):succuss 立即预约购买你的新 iPhone。try:if b.find_element_by_xpath(xpath//h1).text succuss:return Trueexcept:return Falsereturn False#选择手机种类def purchase(browser:webdriver.Chrome):try:color browser.find_element_by_xpath(xpath//section[idproduct-selector]/fieldset[2]/ul/li[4]/div/label/div)color.click()#选择颜色except:push(COLOR CHOOSE ERROR,FAILED)return Falsetry:capacity browser.find_element_by_xpath(xpath//label[idcapacity-1-label])capacity.click()#选择容量except:push(CAPACITY CHOOSE ERROR,FAILED)return Falsetry:store browser.find_element_by_xpath(xpath//select[idanchor-store])Select(store).select_by_value(R493)#选择地区except:push(STORE UNAVALIABLE,FAILED)return False#南京艾尚天地def Store_1(table:pt):storeOne.get(https://reserve-prime.apple.com/CN/zh_CN/reserve/F/availability?iUPN)time.sleep(3)if isResAvaliable(storeOne):purchase(browserstoreOne)status storeOne.find_element_by_xpath(xpath//input[idstore-R703]).is_enabled()if status:statusList.append([南京艾尚天地, Available])else:statusList.append([南京艾尚天地, NO])else:statusList.append([南京艾尚天地, STORE IS CLOSED])#南京虹悦城def Store_2(table:pt):storeTwo.get(https://reserve-prime.apple.com/CN/zh_CN/reserve/F/availability?iUPN)time.sleep(3)if isResAvaliable(storeTwo):purchase(browserstoreTwo)status storeTwo.find_element_by_xpath(xpath//input[idstore-R643]).is_enabled()if status:statusList.append([南京虹悦城,Available])else:statusList.append([南京虹悦城, NO])else:statusList.append([南京虹悦城, STORE IS CLOSED])def Store_3(table:pt):storeThree.get(https://reserve-prime.apple.com/CN/zh_CN/reserve/F/availability?iUPN)time.sleep(3)if isResAvaliable(storeThree):purchase(browserstoreThree)status storeThree.find_element_by_xpath(xpath//input[idstore-R493]).is_enabled()if status:statusList.append([南京金茂汇, Available])else:statusList.append([南京金茂汇, NO])else:statusList.append([南京金茂汇, STORE IS CLOSED])def showStores():for status in statusList:storeStatus.add_row(status)while True:os.system(CLS)push(iphone 12, 蓝色, 128G 实时商店预约状态,WARNING)print(storeStatus)push(--Update Time,WARNING)time.sleep(3)if __name__ __main__:threads []t1 threading.Thread(targetStore_1,args(storeStatus,))#商店1线程threads.append(t1)#加入线程池t2 threading.Thread(targetStore_2,args(storeStatus,))#商店2线程threads.append(t2)#加入线程池t3 threading.Thread(targetStore_3,args(storeStatus,))#商店3线程threads.append(t3)#加入线程池count 0for t in threads:#运行线程t.start()count1push(Waiting Server str(count)returning data,SUCCESS)time.sleep(1)for t in threads:#在浏览器获得信息之前不刷新表格t.join()showStores()#输出状态​简单的加一点细节一个简单的判断是否可以预约的程序就完成啦效果运行如下​到此为止你已经基本知道该如何使用selenium了也对网页分析以及判断的逻辑有了基本的认识下一章我们将实现购买和完成预约点赞过20下周更新点赞过50后天更新点赞过100磕着护肝药立马更新T_T声明本文仅用作个人学习使用禁止用于任何违法活动所产生的后果与代码作者无关​
http://www.yutouwan.com/news/332680/

相关文章:

  • 新郑郑州网站建设网上购物最便宜的网站
  • 中国软件公司有哪些seo服务平台选择
  • 建站服务建设工程教育网官方网站
  • 新市网站建设银锭网那个网站做的 好
  • 做素材网站赚钱吗wordpress悬浮电话插件
  • 网站建设辶首选金手指十五建设一个企业网站要多少钱
  • 台州网站建设技术外包后台管理系统页面模板
  • 合肥网站运营丹灶网站制作
  • 公司如何建设一个网站接外贸单的平台
  • 做网站哪个地方需要钱HTML转WordPress主题
  • 网站建设列表网杭州建设局
  • 福清营销型网站建设方案网站建设会计分录
  • 住房和城乡建设部网站办事大厅里边国内永久免费crm系统app
  • 广告投放网站平台中铁建设门户网登录入口在哪
  • 海派虫网站推广软件如何自己设计一个网页
  • 网站建设快速便宜个人注册域名和公司注册域名区别
  • 学网站制作企业微网站怎么做
  • 敦煌网的网站推广方式全国工程信息网
  • 公司网站开发怎么做网站设置手机版
  • 睢宁做网站二级网站建设思路
  • 地方门户网站推广方法有那些wordpress 音乐主题
  • 以前在线做预算的网站thinkphp仿wordpress
  • 怎样做网站全屏代码广州越秀区租房信息网
  • 良乡网站建设公司绵阳网站建设哪家好
  • 广州网站建设公司好吗北京装修公司怎么选
  • 最好的手机资源网站网站做几个域名比较好
  • 凡科做的网站能被收录吗电商网站开发前景
  • 网站页面相似度检测上海网站建设服务站霸网络
  • 多个网站优化怎么做互联网加盟
  • 宁波网站建设 泊浮科技河源市seo推广