目前由于phantomjs已经不维护了,而新版的Chrome(59+)推出了Headless模式,对爬虫来说尤其是定时任务的爬虫截屏之类的是一大好事. 不过按照网络上的一些方法来写的话,会报下面的错误: 后来经过分析,他们运行python是在mac或者linux下进行的,win下由于高版本的chromedriver只能通过路径进行指定,所以会出现这类找不到驱动程序的错误. 经过比对常识网络上的各种代码,后来得出了win下可顺畅执行的driver的写法如下: from selenium impor…
Bing图片搜索结果是动态加载的,如果我们直接用requests去访问页面爬取数据,那我们只能拿到很少的图片.所以我们使用Selenium + Headless Chrome来爬取搜索结果.在开始前,需要介绍一下xpath. XPath XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言.使用它让我们可以很方便地定位页面中的各种元素.详细使用方法可以看这里. 实例 from selenium import webdriver from…
一.Selenium Selenium是一个用于Web应用程序测试的工具,它可以在各种浏览器中运行,包括Chrome,Safari,Firefox 等主流界面式浏览器. 我们可以直接用pip install selenium来进行安装. 中文翻译文档:https://selenium-python-zh.readthedocs.io/en/latest/index.html 官方文档:https://selenium-python.readthedocs.io/ 二.Headless Chrom…
要实现的效果如下 点击“登录”按钮后,弹出登录小窗口,并且有遮罩层(这个名词还是百度知道的,以前只知道效果,却不知道名字) 在没有点击“登录”按钮之前登录小窗口不显示,点击“登录”按钮后小窗口显示,并且遮罩层笼罩整个页面,使整个页面的其他元素暂时失去行为. 遮罩层的实现:相对于body绝对定位,宽度和高度都和body相同,并且有一定的透明度,使得下面的元素能够被看到.原先的元素的z-index为0,遮罩层的z-index在弹出登录小窗口和原先元素的之间. 说的不是很清楚,还是看代码吧! <!DO…
本文转自:http://blog.csdn.net/prince_jun/article/details/38435887 安装服务时系统不要弹出设置服务登录窗口:在程序中将serviceProcessInstaller类的Account属性设置为LocalSystem 选中serviceProcessInstaller1,右键 属性,设置如下:…
使用SignalR实现消息推送,页面实时刷新,使用WindowsService作为SignalR的宿主,也就是作为一个消息服务器,在使用cmd命令安装的时候弹出设置服务登录的窗口,解决此问题的具体操作方法如下: 安装服务时系统不要弹出设置服务登录窗口:在程序中将serviceProcessInstaller类的Account属性设置为LocalSystem 选中serviceProcessInstaller1,右键 属性,设置如下:…
很多朋友录制脚本时新打开弹出窗口后无法定位元素,我也遇到同样的问题,国内没有什么好的资料,于是就阅读英文,不断尝试,感觉那个selectWindow(title)什么就是个坑,我用这种方法成功处理后得到的title,然后再调用selectWindow同样换败,不过好在找到了一种还算完美的解决方案. 如果谁把那个selectWindow研究透了,欢迎跟贴拍砖共享. Selenium IDE弹出窗口处理 store 贴吧 s1 open /   storeTitle t1   echo ${t1}…
pip install selenium 因为phantomJS将停止维护,所以建议使用headless chromeChromeDriver is a separate executable that WebDriver uses to control Chrome. 1.确保谷歌浏览器安装在可以找到的位置(默认位置或自己指定的位置).如果不是默认位置,则需要用下面的代码来指定谷歌浏览器的安装位置:ChromeOptions options = new ChromeOptions();opti…
事实上这个问题是chrome下安装了一些插件的原因,一般来说是安装迅雷插件会出现这个问题,删除迅雷插件就好了.…
if (window.Notification) { var popNotice = function() { if (Notification.permission == "granted") { var notification = new Notification("信息" , { body:"你好", // icon:图片地址, } ); notification.onclick = function() { notification.c…