为了媳妇的一张号,我与百度医生杠上了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://wen.baidu.com/question/1613702142480457947.html
2.去百度查病到底靠不靠谱,我看到百度上好多医生都是那种很靠谱医院这种情况见于已经知道了什么病,想进一步了解这个病的情况。比如医生告诉你得了糖尿病,你上百度查一查,https://www.zhihu.com/question/343896883/answer/918192800
3.百度医生在线问诊百度医生在线问诊请问你有什么皮肤方面的问题吗?多久了搔抓后有白皮儿吗?痒吗像是牛皮癣我看着是有点像你可以去正规医院皮肤科看看玫瑰糠疹可以就是牛皮癣的话有可能复发是的刚开始是小的慢慢可以发展成大的一般是抵抗力下降容易引发忌酒,忌烟可以口服复方甘草酸苷胶囊外https://www.miaoshou.net/consult/1zoEVkGRLBDb8aAN.html
4.百度上看到的医生是真医生吗不是因为看百度才吃这个的 是我妈找来的偏方非要买 我那时候虽然知道这东西不好但是没想到后果这么严重 哎 以后肯定不会再买了 ——— 我姥姥因为吃这个肠子变黑了 但是如果去医院的话 医生好像都不会建议吃这个东西 为什么网上的都没有一个提醒不能吃的 真的是真医生吗赞 回应 转发 赞 收藏 只看楼主 最https://m.douban.com/group/topic/275766675/
5.百度医生在线问诊真实医生回答问:医生您好,这是我的问题:百度医生在线问诊(女,25岁) 答:如果出现血量多,建议医院及时就诊,复查血HCG,现在血HCG比较低,流产或生化妊娠或宫外孕都不能排除,出血量多,建议医院复查血HCG,您自己观察看,腹痛明显,出血量多,建议及时就诊,那观察看一下吧,不适https://www.chunyuyisheng.com/pc/qa/9dySFFhTRTEFKHdR0d66Ug/
6.不知道是我太笨,还是百度的医生是骗子,不知道是我太笨,还是百不知道是我太笨,还是百度的医生是骗子,不知道是我太笨,还是百度的医生是骗子,在百度想咨询医生我自己在网上买的这二种鼻炎药能不能用,马上给我弹屏要支付费用才可以咨询,等我把钱支付了怎么都不能返回到我咨询的那个医生页面,真的是大半夜本来睡不着, - 真心对待于2https://www.douyin.com/note/7390481743616199972
7.百度医生就诊人管理添加就诊人的详细教程手机软件软件教程百度医生就诊人管理怎么添加就诊人?百度医生在进行预约挂号时,需要先添加好就诊人,注意挂号的就诊人一定要是患者,而不是帮患者挂号的人。所以若是帮别人预约挂号,首先将他的个人信息添加到百度医生就诊人中。然后在进行挂号预约的时候就可以直接选择得到就诊人了 https://www.jb51.net/softjc/358504.html
8.百度降医生版百度健康医生版评分及评论 3.6(满分 5 分) 131 个评分 被迫评论16268,2023/03/10 好评 百度健康不愧是大公司产品,患者也比较信赖,基本上满足我对患者的线上管理诉求,而且线上福利奖励也蛮多,多劳多得,公平公正。推荐给身边的医生朋友。 同事分享让我注册,说注册一个儿科医生推荐人和注册人每人都有200元奖励,https://apps.apple.com/cn/app/wapatv/id1437234400?see-all=reviews
9.百度那些医生是真是假步行街主干道美职篮英雄 https://bbs.hupu.com/55608500.html
10.百度医生在线问诊妇科在线问诊百度医生在线问诊妇科 付勇辉主治医师 你好你想咨询什么? 患者 你好 患者 【图片涉及隐私不予展示】 患者 【图片涉及隐私不予展示】 患者 能帮我看下这个报告吗? 付勇辉主治医师 您有什么不适吗? 患者 是我婆婆,不是我 付勇辉主治医师 嗯!她又什么不适,子宫脱垂!? https://www.miaoshou.com/zxwz/Y8J2jk4M6mYd0xKX.html
11.百度医生hpv免费问诊南京秦淮圣贝门诊部快速问医生在数字化医疗日益发展的今天,?百度医生平台凭借其强大的互联网技术和丰富的医疗资源,?为广大用户提供了便捷医疗服务。?其中,?HPV免费问诊服务就是该平台的一大亮点,?为关注自身健康、?有HPV相关疑问的用户提供了一个专业、?及时的咨询渠道。? https://m.120ask.com/yiyuan/news/10519951.html
12.百度免费问诊在线医生安全吗?伴随着热度上升的同时,大家难免会对这一新兴模式有一些疑问,例如百度免费问诊在线医生安全吗?下面就以在线问诊平台——薛医生?为例讲解。 薛医生?这一平台的医生都来自于医院里面坐诊的医生,入驻前首先需要提供身份证、医师资格证、执业医师证、所在医院职称聘书,不可能造假。此外,患者的一些私密问题,这类问题问https://www.xuedoctor.com/archives/5475.html
13.百度平台医生不靠谱,平台不靠谱在百度上搜索医院,跳出来百度健康平台,说是可以线上找医生,付费进去发现平台上的医生非常不靠谱。 百度霸王条款,说他们的医生是专业的,不给退款。 里面的回答非常不靠谱,问过药房的医生,这个方子有毒,不敢吃。希望有关部门可以管一管,百度平台上搜索出来医院的信息,希望可以退款给我。 https://tousu.sina.cn/complaint/view/17369397027/