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

北京做手机网站的公司隆回网站建设制作

北京做手机网站的公司,隆回网站建设制作,温州专业网站建设,网站开发可行性引言​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/170102/

相关文章:

  • 太原模板建站优化图片传网站
  • 哪些人可以做网站国际俄罗斯乌克兰
  • vps怎么添加网站wordpress 高亮插件
  • 需要企业网站建设基于网站开发app
  • 建设网站一般要多久到账制作二维码
  • 网站首页模块建设保定网站制作设计哪个公司好
  • 前端网站开发课程购物商城网站源码
  • 盐城手机网站建设学习建网站玩网站建设学习
  • wordpress仿站容易被收录不设计网站页面出现问题
  • 家政公司网站的建设南京网络推广网站建设公司
  • 临淄网站制作首选专家余姚网站制作
  • 建站公司排名 软通成都购物网站设计
  • 做海报的免费网站牟平网站建设
  • 网站运营托管方案国内装修公司排名前十强
  • m版网站开发深建工程集团有限公司
  • 网站安全检测在线学校网站 源码
  • 推荐西安知名的集团门户网站建设公司国家企业信用查询系统官网
  • 网站运营需要哪些技术网站设计书籍
  • 北京app网站开发枣强做百度网站
  • 建设银行网站打不开别的网站可以吗十大免费跨境app
  • 佛山做网站-准度科技公司哪里可以做网站推广
  • 安卓和网站开发找工作snippets wordpress
  • 网站前端用的到ps美食电子商务网站建设策划书
  • 济南网站建设推荐q479185700强涵优质网站建设方案
  • 正规网站制作价格企业简介优势项目案例等推广
  • 营销型单页网站黑龙江省建设工程网
  • 刚做的网站怎么织梦如何仿手机网站
  • 用vs2010做网站导航WordPress文章相似推荐
  • 网站备案 拉黑开发网站公司排行
  • 新浪推网站wordpress多媒体设置