为了媳妇的一张号,我与百度医生杠上了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.医疗科普视频乱象多:“专家”未经认证迎合“恶趣味”李医生“每天科普一个医学小知识。你真的会洗头吗?三甲医院医生教你正确洗头。”这是某平台上的一则医疗科普视频,一位身穿手术服的“医生”面对镜头,演示如何正确洗头。 这样的医疗科普短视频如今在各平台层出不穷,内容多以两性话题、心脑血管疾病、食疗补身等为主。一些医生和药师成为“网红”,将流量变现,向用户售卖https://www.163.com/dy/article/IJL7RBJK05129QAF.html
2.百度上看到的医生是真医生吗不是因为看百度才吃这个的 是我妈找来的偏方非要买 我那时候虽然知道这东西不好但是没想到后果这么严重 哎 以后肯定不会再买了 ——— 我姥姥因为吃这个肠子变黑了 但是如果去医院的话 医生好像都不会建议吃这个东西 为什么网上的都没有一个提醒不能吃的 真的是真医生吗赞 回应 转发 赞 收藏 只看楼主 最https://m.douban.com/group/topic/275766675/
3.百度医生在线问诊真实医生回答问:医生您好,这是我的问题:百度医生在线问诊(女,25岁) 答:如果出现血量多,建议医院及时就诊,复查血HCG,现在血HCG比较低,流产或生化妊娠或宫外孕都不能排除,出血量多,建议医院复查血HCG,您自己观察看,腹痛明显,出血量多,建议及时就诊,那观察看一下吧,不适https://www.chunyuyisheng.com/pc/qa/9dySFFhTRTEFKHdR0d66Ug/
4.谁懂医护苦?那些年在医院经历的奇葩投诉我们医院每天早晨医生查完房都要给患者发每日清单,就是前一天的检查治疗收费项目。 有一次一个患者做了十六层CT,投诉称:我明明住在12层,为什么要收我16层的钱,你们乱收费,要求把多收的那另外四层的钱退回去。 哈哈,第一次听说CT扫的层数是按楼层算的。如果真的按楼层算,下次有人住一层,是不是CT要退15层https://www.iiyi.com/d-10-417737.html
5.百度版AI医生叫板ChatGPT:会看CT片子,也会分诊管理朱东纬(百度大健康事业群AI产业部产品负责人):分两层,文心大模型的底座肯定会做通识性的测评,医疗大模型就跟人去比,评测集有两个层级,第一个是百度内部的医生团队,第二个会找外部的三甲医院医生。 问:效果如何? 朱东纬:我们测试的结果是接近三甲医院的主治临床医生。 https://36kr.com/p/2441904132905090
6.百度降,你的医生是在“摸鱼”吗?不解决问题还乱收费!百度健康,你的医生是在“摸鱼”吗?不解决问题还乱收费! 已隐藏内容 黑猫消费者服务平台商家处理中12-17 21:54:21 已分配商家 百度健康 黑猫消费者服务平台审核通过12-17 21:54:21 友爱喵发起投诉12-17 20:33:06 我在2024 12月9日在百度App百度健康上询问医生,医生并没有认真回复,我发出的问题选择性回复https://hebei.tousu.sina.com.cn/complaint/view/17378441383/?sld=67ad1dee42d3067cd5cd37192521b3ad
7.百度问一问付费咨询百度chatgpt需要付费吗?五、文心一言出了百度问一问会怎么样。还能兼职百度问一问吗? 还是可以的,尽管百度问一问运行在AI引擎系统上,但如果你对咨询工作有自己的独特理解和专业技能,它也是可以兼职的。 六、百度问医生免费咨询入口? 打开百度,输入“百度问医生” 百度医生的功能: https://tool.a5.cn/article/show/77017.html
8.百度那些医生是真是假步行街主干道美职篮英雄 https://bbs.hupu.com/55608500.html
9.医生看病让患者去百度生病网络求医靠谱吗近日,一段医生与患者家属的对话视频在网络上快速转载开来,引起了网友们的关注与热议。在这段视频对话中,能明显听到当患者问医生小叶增生是什么的时候,医生回答患者让其百度。随着这段视频的快速转载,越来越 近日,一段医生与患者家属的对话视频在网络上快速转载开来,引起了网友们的关注与热议。在这段视频对话中https://www.snsnb.com/post-174154-1.html
10.百度免费问诊在线医生安全吗?伴随着热度上升的同时,大家难免会对这一新兴模式有一些疑问,例如百度免费问诊在线医生安全吗?下面就以在线问诊平台——薛医生?为例讲解。 薛医生?这一平台的医生都来自于医院里面坐诊的医生,入驻前首先需要提供身份证、医师资格证、执业医师证、所在医院职称聘书,不可能造假。此外,患者的一些私密问题,这类问题问https://www.xuedoctor.com/archives/5475.html
11.“百度医生”宣布关停下线:4月起清空数据,将聚焦AI医疗10%公司按照百度医生官网表述,百度医生是百度倾力打造的国内专业的医患双选平台,旨在帮助用户快速预约身边的医生,缓解由医疗资源配置不合理导致的“就医难”。据了解,百度医生设有预约医生、智能导诊、精准搜索、多选医生、就诊评价等功能。 百度医生官网上海站首页,《百度医生关停公告》。 https://www.thepaper.cn/newsDetail_forward_1631365
12.百度医生百度医生是由百度公司全力打造的全国性医患双选平台,百度医生(医生版)是平台为医生量身定制的移动客户端,旨在帮医生快速树立个人品牌,多平台推广百度认证医生,为医生带来更多患者。百度医生(医生版)已于2015年1月发布到各大应用市场。百度医生通过提供百度医生认证https://baike.sogou.com/v174935252.htm
13.百度医生在线问诊百度医生在线问诊 提示:线上咨询不能代替面诊,医生建议仅供参考! 答咨询实录 王珊珊 主治医师 滨州市中心医院 皮肤性病科 请问你有什么皮肤方面的问题吗? 多久了 搔抓后有白皮儿吗? 就这几天 痒吗 有 不疼不痒 像是牛皮癣 这几天就一直在家里门都没出去过呀 我看着是有点像 你可以去正规医院皮肤科看https://www.miaoshou.net/consult/1zoEVkGRLBDb8aAN.html