如果想用程序模拟在浏览器中使用百度搜索的结果,最先想到的就是爬虫了,
然而,还有一个更简单的方式可以使用,那就行直接使用百度的 API ,返回是 json 格式的数据,简直不要太爽。。。
API:
https://www.baidu.com/s?wd=apple&pn=1&rn=10&tn=json
参数说明:
wd:关键词
pn : 查询偏移位置(偏移位置对应浏览器中的行数)
rn: 每页显示多少条,默认为10条,最多50条
tn:返回数据类型,默认为 baidu 格式,可修改为 json 格式
所谓便宜没好货,哈哈。API 返回的数据,和真实浏览器中的位置和搜索结果还是大有不同的。
如果用爬虫的话,也会出现和上述一毛一样的问题,就是结果和真实浏览器中的不一致。。。。。。
最后,告诉大家一个神器,使用测试框架 selenium
,用它来模拟人手动登录,这样效果就和真实浏览器一致了,就是慢了点儿
你以为这就完了吗?告诉你,没有!在多次测试以后发现 selenium
和真实浏览器也不太一致了(大部分都一样),这是怎么回事呢?正好这时,技术总监到我面前,我就顺嘴问了下,他告诉我把程序中的窗口大小调整下:
# 设置窗口大小row = random.randint(500, 1000)col = random.randint(1000, 2000)self.driver.set_window_size(row, col)
啥玩儿?你扯淡吧!这和我的情况有关系吗?
。。。。。。众所周知,王境泽是为哲学家!谁都逃不逃真香定律
!
结果我把程序中的窗口大小调整以后,确确实实的是好了。可能你会想:“这是为什么呢”?其实我也在想为什么。结果我就去问了,总监淡淡的说了一句:直觉!!!
后来呀,又报错了。。。。
Firefox中报错如下:
org.openqa.selenium.ElementClickInterceptedException: Element <div class="el-submenu__title"> is not clickable at point (115,358) because another element <div class="el-loading-mask is-fullscreen el-loading-fade-leave-active el-loading-fade-leave-to"> obscures it
错误的意思是:无法点击这个元素,因为被另一个div掩盖(obscure)住了。
Chrome 中报错如下:
org.openqa.selenium.WebDriverException: unknown error: Element <div class="el-submenu__title" style="padding-left: 20px;">...</div> is not clickable at point (115, 358). Other element would receive the click: <div class="el-loading-mask is-fullscreen el-loading-fade-leave-active el-loading-fade-leave-to" style="z-index: 2000;">...</div>(Session info: chrome=67.0.3396.99)
错误的意思是:无法点击这个元素,另外一个div元素接收了这个点击
可能出错的原因是窗口大小是随机的,会出现元素覆盖在一起的情况
解决的话也简单,把程序中的窗口大小调整为全屏
# 设置窗口大小
# row = random.randint(500, 1000)
# col = random.randint(1000, 2000)
# self.driver.set_window_size(row, col)self.driver.maximize_window()
深圳SEO优化公司新安各大网站优化昌吉关键词网站优化石家庄seo网站优化公司费用网站怎么才可以优化到全网收费网站优化成功案例我要自学网网站排名优化香港网站优化公司网站移动端优化排名方法荆门外包网站优化哪个好搜索引擎网站优化企业网站标题优化推荐的书网站优化书高淳区模板网站优化优化网站软件钅要金手指专业大连规模大的教育行业网站优化漯河网站优化软件自学建网站做网站优化广州网站搜索引擎网站优化浦东新区官方网站优化排名北京测试网站优化质量保障饿了么网站首页链接布局优化海安网站优化可靠吗五原网站seo优化宁陵网站推广优化盐城建湖网站优化推广企业网站优化哪个最好网站制作网站优化公司哪家好牟平个性化网站优化公司河北家纺行业网站优化推广安庆网站推广优化哪家价格便宜歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运