为了媳妇的一张号,我与百度医生杠上了JackieZheng

需求是催生项目和推进项目的不竭动力。

背景:

1.支付宝

在支付宝的城市服务中,定位到指定城市,是能够看一些医院提供了预约挂号接口的,显然A医院当之无愧也在其中。

简便易用的支付宝用户体验,即便是第一次来也好像是经常使用这项服务般熟练。找到A院,搜索妇产科,在list中有若干医生,有的标注无号源,有的标注可预约,大抵如下:

于是满怀激动的点击"可预约",可是弹出来的却不是我想要的结果--!

后来听到诸如凌晨12点会有号放出,但是最终也是收到同样冷冰冰的弹出窗口。对于用此招挂上号的我深表佩服,只是抛开这个不说,感觉A院在支付宝这块的投入太低,UI设计也很呆板,最主要的是抢不到号。

2.百度医生

相对来说,百度医生要比上面做的实诚的多,有就是有,没有就是没有。不管是PC端还是app端,用户界面更加柔和smooth。

于是我把希望寄托在这里,但是A院的号难抢,这是事实。而百度医生我觉得还有一块空白可以实现的就是监控机制,好比12306可以刷票一样,添加这个模块,相信app的下载量和使用量会提高一个"当量"。

很显然,这个功能,还没有,那我只能自己动手了~~~

我的思路

1.百度从医院拿数据,那我就从百度拿数据。我能够监控百度医生放出来的消息,就基本与医院同步了;

码前预热

1.框架选择

毫无疑问,我们采用selenium,一款web测试应用工具,模拟我在浏览器上的操作。可以基于IE、FF、Chrome等等浏览器,实现启动关闭浏览器/页面,在页面上点击、定位元素等相应操作。关于seleniumwebdriver的背景知识就不做介绍,一篇博文显然难以阐述清楚。

2.工具使用

在使用selenium过程中,页面元素的定位是个核心问题。我们可以使用By类下面的By.name,By.id,By.linkText分别获取获取name属性,id属性,超链接文本。这些方式的定位我们直接可以在DOM结构中看出来,其中比较复杂的是xpath,需要根据DOM结构实现定位,这时候我们需要一个工具可以实时的测试我们的xpath表达式是否能够正确定位到指定元素。

a.在Firefox浏览器中,我们可以安装插件FirePath

这里我们通过字符串".//*[@id='su']"就能够定位到"百度一下"这个按钮

b.在chrome里面,我们可以下载插件XPathHelper,有关它的用户,请参看

思路有了,工具齐了,那就开始着手做吧

1.启动chrome浏览器

需要下载chrome的驱动

System.setProperty("webdriver.chrome.driver","C:\\Users\\Administrator\\Downloads\\chromedriver_win32\\chromedriver.exe");WebDriverdriver=newChromeDriver();

2.定位元素执行动作

WebElementloginLink=driver.findElement(By.xpath(".//*[@id='u1']/a[7]"));loginLink.click();

3.等待页面加载完成

有时候在driver.get()到某个页面时,如果页面没有加载完成,这时候去定位元素容易抛出异常,所以需要加入等待页面加载完成的功能。这里将其封装在一个函数中:

publicstaticvoidwaitForLoad(WebDriverdriver){ExpectedConditionpageLoad=newExpectedCondition(){publicBooleanapply(WebDriverdriver){return((JavascriptExecutor)driver).executeScript("returndocument.readyState").equals("complete");}};WebDriverWaitwait=newWebDriverWait(driver,30);wait.until(pageLoad);}

4.遇到异常重新启动机制

监控的原理在于间歇性的点击相应的科室并监听页面中是否有想要的元素出现(如出现预约挂号),如果出现则点击进入相应界面,如果没有出现则一直监听。

但是在实测过程中,发现持续点击某科室会出现页面一直加载的情况,这时候会抛出异常,程序无法正常进行。

所以在这里捕获异常,通过递归调用的思想,关闭先前的driver对象,并调用自己重新生成一份监听driver对象,从而保证程序正常执行,提高了程序的健壮性。

try{WebDriverWaitwait=newWebDriverWait(driver,7000);wait.until(newExpectedCondition(){publicWebElementapply(WebDriverd){try{Thread.sleep(2000);//为避免给baidu早成麻烦,每2秒监听一次}catch(InterruptedExceptione){e.printStackTrace();}departLink.click();//departLink为妇产科的文本链接monitoringTimes++;//监听的次数System.out.println("第"+monitoringTimes+"次监控");returnd.findElement(By.xpath("//*[@id='doctor-info-list']/descendant::*[contains(text(),'预约挂号')][1]"));}});waitForLoad(driver);}catch(Exceptione){ticket=true;System.out.println("抱歉,目前余号不足,请稍后再试");}finally{if(ticket){driver.close();startMonitor();//递归调用}}

5.成果展示

但从程序来说,可以现实自动抢号功能,已成功预约到非妇产科以外科室的号。

THE END
1.病人去医院看病,医生:不懂?你自己去百度!12月16日,新化县人民医院医生和患者起争吵视频热传。该医院方面称,因患者较多,刘医生看完患者阳某某彩超后表示是小叶增生,“观察就行了”,便开始为下一个患者看病。陪同阳某某的两人要求其解释病情。刘医生对其语气感到不满,说有什么不清楚的回去百度一下就懂,随后双方发生争吵。目前,刘医生向患者解释并道歉,该医https://www.163.com/dy/article/E3KUC37205455WLI.html
2.百度上看到的医生是真医生吗大概率不是真的医生。从逻辑上讲,1医院不会允许医生顶着单位名字上网答这种题,不然出事追究负责怎么办;2公立医院医生有值不完的班看不完的门诊排不完的手术和科研任务,没有空上来答题。 最后不要上百度问医!不要信网上的保健品!及时就医,祝你姥姥快点康复。 赞(1619) 回应 己汪销 2022-09-28 13:02:11https://m.douban.com/group/topic/275766675/
3.www.ycylyy.com/nodenews54311725.htm坐台小姐电影百度影音 医生好紧?宝贝别夹H乱h视频 掀开衣服左边吸完吸右边知乎 64.92MB 420好评 丰满年轻的教师4HD 女同bt 孟狐狸裸体 07.02MB 5136好评 日本妈妈jiZZ 茄子视频IOS下安装无限看-苏州晶体 一级黄片视频看看你 942.73MB 1643好评 女教师纱也香 法国啄木鸟电影公司 我胯下的玩物http://www.ycylyy.com/nodenews54311725.htm
4.百度降上的医生是本人吗?在实际医院里没有啥病人的医生,当然是本人,实际医院里自己病人都看不完的医生,你觉得能是本人呢?https://www.zhihu.com/question/462573504/answer/2185186386
5.百度上医生说的症状是真的吗?怎么艾滋病和快速问医生百度上医生说的症状是真的吗?怎么艾滋病和2013-10-17 百度上医生说的症状是真的吗?怎么艾滋病和淋病还有急性尿道炎,症状得差不多啊。是人的症状他说的都有?百度上医生说的症状是真的吗?怎么艾滋病和淋病还有急性尿道炎,症状得差不多啊。是人的症状他说的都有?https://m.120ask.com/askg/mip_detail/46992333
6.我在百度上问了很多医生,都说上厕所时要蹲我在百度上问了很多医生,都说上厕所时要蹲一会儿才上的出来还上不了多少,这种是尿道炎,会引起尿毒症吗 提示:线上咨询不能代替面诊,医生建议仅供参考! 答咨询实录 汪磊 主治医师 聊城市人民医院 内科 并不是这种情况的,多喝温水勤排尿,冲洗一下尿道。 医生你好 就是我上厕所要蹲一会才上的出来,而且上不了https://www.miaoshou.net/consult/8EMBjdL9jjNqglXP.html
7.在百度降咨询医生,这次医生不专业,客服不作为黑猫投诉已分配商家 百度健康 黑猫消费者服务平台审核通过11-17 12:02:37 正义喵发起投诉11-17 11:39:13 早晨八点咨询的医生,未进行任何问询,咨询了一个我早已在档案中说过的信息,在我给予的有限的条件下给了一个大概的病名,我严重怀疑这位医生并未仔细查看档案,也让我怀疑这位医生的专业性,八点零二我补充了新的病https://tousu.sina.com.cn/complaint/view/17369891440
8.百度免费问诊在线医生安全吗?伴随着热度上升的同时,大家难免会对这一新兴模式有一些疑问,例如百度免费问诊在线医生安全吗?下面就以在线问诊平台——薛医生?为例讲解。 薛医生?这一平台的医生都来自于医院里面坐诊的医生,入驻前首先需要提供身份证、医师资格证、执业医师证、所在医院职称聘书,不可能造假。此外,患者的一些私密问题,这类问题问https://www.xuedoctor.com/archives/5475.html
9.AppStore上的“百度降医生版”百度健康医生版是百度旗下专为医生提供服务的在线工作平台,依托于百度集团流量、技术、资源优势,全面提升医生个人品牌影响力,开启线上执业新方式,为更多患者提供专业服务。 「专属权益」 百度健康亿级流量扶持,百家号、百度百科、直播等百度平台支撑,多种医生专属权益,全面助力医生打造个人品牌 「问诊、处方」 接诊、咨https://apps.apple.com/cn/app/id1437234400
10.江苏徐州一社区医院女医生查百度看病?回应:不合规,正在调查潇湘晨报消息,11月3日,有网友发布视频称,徐州泉山区城南社区卫生服务中心的医生在为患者看病时查询百度,此事引发热议。 网传视频显示,一名女性患者正在就诊,手心朝上将手放在医生的桌上,一旁的女医生一边查询手机,滑动手机页面,一边与患者交流。而医生听诊器下方的一张检查单上,印有徐州市泉山区城南社区卫生服务中https://www.cqcb.com/shishijingwei/2023-11-03/5414370_pc.html
11.陈冯富珍的手环和李彦宏的百度医生李彦宏用百度看病吗? 搜索百度看病,这一话题长期以来备受争议,作为百度公司创始人,李彦宏用“百度看医生”吗?面对主持人的犀利问题,他答道,“轻微的症状确实会通过网络搜索来解决,但遇到严重问题会找医生。”网民调查显示,49%有时会利用互联网解决健康问题,22%经常利用互联网解决问题。 https://www.jfdaily.com/wx/detail.do?id=37145
12.上海40家三甲医院预约挂号全攻略!!9. 使用百度医生预约 百度医生是百度推出的预约挂号平台,目前共覆盖上海地区医院32家(包括分院),其中三甲医院30家(包括分院)。 预约流程: 1. 登陆百度医生官网(http://yi.baidu.com/pc); 2. 选择就诊地点、医院、科室,点击快速预约; 3. 选择医生与时间; https://www.jianshu.com/p/9dc77067c901
13.请问我在百度上加了一个医生微信,然后说他的药可以治好病,先转了680不会负法律责任 https://www.66law.cn/question/25435496.aspx
14.百度加码快抖试水,互联网巨头上演降科普战事医疗健康领域从来都不缺少焦点,但有来医生却是相当低调的玩家,距离上一轮融资已经过去三年时间。 为何手握百度健康医典、百家号、直播、智能小程序等内容矩阵的百度,最终看中了有来医生?个中原因离不开有来医生“踩中”的两个风口,一是瞄准了生产医疗科普的大IP,二是帮助医生拍摄科普短视频内容。 https://36kr.com/p/1263431916490883.html