为了媳妇的一张号,我与百度医生杠上了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://m.douban.com/group/topic/275766675/
2.百度上医生说的症状是真的吗?怎么艾滋病和快速问医生百度上医生说的症状是真的吗?怎么艾滋病和2013-10-17 百度上医生说的症状是真的吗?怎么艾滋病和淋病还有急性尿道炎,症状得差不多啊。是人的症状他说的都有?百度上医生说的症状是真的吗?怎么艾滋病和淋病还有急性尿道炎,症状得差不多啊。是人的症状他说的都有?https://m.120ask.com/askg/mip_detail/46992333
3.不娶医生当老婆的七个理由第二,医生老婆不懂得照顾人.不要以为学医的人一定会对你的身体照顾得无微不至.事实上,她看得太多病得厉害的人了(见惯不怪).你抱怨说你不舒服,她可能会漫不经心地告诉你休息一下就好,或者叫你随便找点什么药吃.你真的生病了,你也别指望她嘘寒问暖,你得学会自己照顾自己,因为她永远有比你严重得多的https://wenku.baidu.com/view/501915544bd7c1c708a1284ac850ad02de8007fe.html
4.百度免费问诊在线医生安全吗?伴随着热度上升的同时,大家难免会对这一新兴模式有一些疑问,例如百度免费问诊在线医生安全吗?下面就以在线问诊平台——薛医生?为例讲解。 薛医生?这一平台的医生都来自于医院里面坐诊的医生,入驻前首先需要提供身份证、医师资格证、执业医师证、所在医院职称聘书,不可能造假。此外,患者的一些私密问题,这类问题问https://www.xuedoctor.com/archives/5475.html
5.百度版AI医生叫板ChatGPT:会看CT片子,也会分诊管理能力“接近三甲医院的主治临床医生”,但离完全替代还得跨监管、性能的好几个坎。https://36kr.com/p/2441904132905090
6.百度问医生免费百度健康问医生是一款智能医疗平台,用户可以通过该平台向专业医师咨询疾病、用药等问题,并且还可以查看https://askar.39.net/ask/changshouzhongliuke/gGZn4LNG.html
7.百度平台医生不靠谱,平台不靠谱在百度上搜索医院,跳出来百度健康平台,说是可以线上找医生,付费进去发现平台上的医生非常不靠谱。 百度霸王条款,说他们的医生是专业的,不给退款。 里面的回答非常不靠谱,问过药房的医生,这个方子有毒,不敢吃。希望有关部门可以管一管,百度平台上搜索出来医院的信息,希望可以退款给我。 https://tousu.sina.cn/complaint/view/17369397027/
8.百度那些医生是真是假步行街主干道美职篮英雄 https://bbs.hupu.com/55608500.html
9.AppStore上的“百度降医生版”百度健康医生版是百度旗下专为医生提供服务的在线工作平台,依托于百度集团流量、技术、资源优势,全面提升医生个人品牌影响力,开启线上执业新方式,为更多患者提供专业服务。 「专属权益」 百度健康亿级流量扶持,百家号、百度百科、直播等百度平台支撑,多种医生专属权益,全面助力医生打造个人品牌 「问诊、处方」 接诊、咨https://apps.apple.com/cn/app/id1437234400
10.付费问诊无回复还不退款,百度降被举报医生冒名注册,职称不实宣称“医生多、速度快”“汇聚全网10万医生,平均5分钟回复”的百度健康被不少用户吐槽在线付费咨询却未得到医生的回复。来自陕西的吴希(化名)告诉《消费者报道》,9月25日在百度健康平台上花费了45元向上海某三甲医院的心血管内科副主任医师进行咨询,但对方并没有回复吴希。 https://www.time-weekly.com/index.php/post/274859
11.百度医生在线问诊男科真实医生回答问:百度医生在线问诊男科(男,34岁) 答:这个跟你xx有关。xx多了,同房的时候会精力不足。可能刺激不够。有可能心里原因。你也说了,这段时间比较频繁。身体透支了,精力不够用了。长度就是龟头到阴茎根部。周长就是带一个标准避孕套,不掉就好。时间一般5到10分钟。不会https://m.chunyuyisheng.com/qa/MM8-GseycHaFh-MxiWXMLQ/
12.百度医生就诊人管理添加就诊人的详细教程手机软件软件教程百度医生就诊人管理怎么添加就诊人?百度医生在进行预约挂号时,需要先添加好就诊人,注意挂号的就诊人一定要是患者,而不是帮患者挂号的人。所以若是帮别人预约挂号,首先将他的个人信息添加到百度医生就诊人中。然后在进行挂号预约的时候就可以直接选择得到就诊人了 https://www.jb51.net/softjc/358504.html
13.江苏徐州一社区医院女医生查百度看病?回应:不合规,正在调查潇湘晨报消息,11月3日,有网友发布视频称,徐州泉山区城南社区卫生服务中心的医生在为患者看病时查询百度,此事引发热议。 网传视频显示,一名女性患者正在就诊,手心朝上将手放在医生的桌上,一旁的女医生一边查询手机,滑动手机页面,一边与患者交流。而医生听诊器下方的一张检查单上,印有徐州市泉山区城南社区卫生服务中https://www.cqcb.com/shishijingwei/2023-11-03/5414370_pc.html
14.百度降构建全链路服务平台,超30万医生入驻,日响应咨询中国经济周刊-经济网讯 “国家正在推进健康中国和数字中国两大战略。我们在实施健康中国战略过程中,要注意发挥数字技术的优势,医务工作者要积极投身到健康传播工作中,也希望有更多更好的平台投身到这一项有意义的事业之中。”7月11日,国家卫生健康委规划发展与信息化司司长毛群安在“2021百度健康致敬医者盛典”上表示。https://www.ceweekly.cn/2021/0712/351473.shtml