phantomjs

phantomjs下载安装与使用

匿名 (未验证) 提交于 2019-12-02 23:51:01
一、PhantomJS是什么? PhantomJS是一个基于webkit的javaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行javaScript代码。任何你可以基于在webkit浏览器做的事情,它都能做到。它不仅是个隐性的浏览器,提供了诸如css选择器、支持wen标准、DOM操作、json、HTML5等,同时也提供了处理文件I/O的操作,从而使你可以向操作系统读写文件等。phantomJS的用处可谓非常广泛诸如网络监测、网页截屏、无需浏览器的wen测试、页面访问自动化等。 二、phantomjs的下载安装 : http://phantomjs.org/download.html 1、根据电脑所需,进行下载。 2、下载完成后,直接解压到桌面。然后找到文件夹bin目录下的exe文件的路径。 3、复制该路径,找到环境变量中的path,在最后增加一个英文分号(;),然后把刚才复制的路径粘贴,然后确定。 4、到这里,你已经成功下载安装好PhantomJS了。那么,打开phantomjs\bin文件夹,双击运行phantomjs.exe,出现如下界面,那么你就可以运行JS代码了。 三、phantomjs的使用 form selenium import webdriver #使用webkit无界面浏览器 driver = webdriver

selenium使用Headless Chrome模板

匿名 (未验证) 提交于 2019-12-02 23:48:02
目前由于Phantomjs已经不维护了,而新版的Chrome(59+)推出了Headless模式 如果继续使用Phantomjs会有以下警告 UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless ' 所以还是用Headless的Chrome吧 官方文档:https://developers.google.cn/web/updates/2017/04/headless-chrome 先安装chrome:(应该都会) 然后安装chromedriver可以参考这篇博客:https://www.cnblogs.com/technologylife/p/5829944.html 最后用模板: 如果把--headless注释就又有窗口了 from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options

node.js and phantom.js in iOS?

可紊 提交于 2019-12-02 23:46:53
问题 How can I get the items in the table written by this script in iOS: <script type="text/javascript" src="//www.google.com/trends/embed.js?hl=en-US&cat=0-14&date=today+7-d&cmpt=q&content=1&cid=RISING_QUERIES_0_0&export=5&w=300&h=420"></script> Any good tutorials maybe on node.js and phantom.js for iOS? 来源: https://stackoverflow.com/questions/14535629/node-js-and-phantom-js-in-ios

Selenium+PhantomJS使用时报错原因及解决方案

匿名 (未验证) 提交于 2019-12-02 23:42:01
Selenium+PhantomJS使用时报错原因及解决方案 小洋人最happy 阅读数 20433 今天在使用 selenium + PhantomJS 动态抓取网页时,出现如下报错信息: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless ' 1 2 翻译过来就是: selenium已经放弃PhantomJS,了,建议使用火狐或者谷歌无界面浏览器。 1 通过 pip show selenium 显示,默认安装版本为 3.8.1 将其卸载 pip uninstall selenium ,重新安装并指定版本号 pip install selenium==2.48.0 再次运行,发现没有报错,搞定! Selenium+Headless Firefox Selenium+Headless Firefox 和 Selenium+Firefox ,区别就是实例 option 的时候设置 -headless 参数。 - 本地需要

知乎动态加载应对

匿名 (未验证) 提交于 2019-12-02 23:34:01
1.知乎动态加载 当我们需要爬取知乎中的数据时,会发现知乎采取动态加载技术,内容块只有在浏览器下滚时才会刷新。没有“下一页”,所以不同与普通爬虫,我们需要模拟浏览器的操作。 2.Selenium与PhantomJS的配合 对于采用异步加载技术的网页,可以使用Selenium模块模拟浏览器。Selenium是一个用于Web应用程序测试的工具,直接运行在浏览器中,使浏览器自动加载页面,Selenium自身不带浏览器,需要配合第三方浏览器来使用。PhantomJS是一种无界面,“无头”浏览器,开销小,速度快。 通过Selenium与PhantomJS的配合使用,不需要进行逆向工程,便可获得异步加载数据,能够完全模拟用户在浏览器的所有操作,包括输入框的内容填写、单击、截屏、下滑等。 3.模拟下滚应对动态加载 def scroll_foot ( driver ) : if driver . name == "chrome" or driver . name == 'phantomjs' : js = "var q=document.body.scrollTop=100000" elif driver . name == 'internet explorer' : js = "var q=document.documentElement.scrollTop=100000" return

PhantomJS download using a javascript link

大憨熊 提交于 2019-12-02 23:17:36
I am attempting to scrape the below website: http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2011&month=0&season1=2011&ind=0&team=0&rost=0&players=0 If you click the small button at the top-right of the table titled "export data", a javascript script runs and my browser downloads the file in .csv form. I'd like to be able to write a PhantomJS script that can do this automatically. Any ideas? The above button is coded into HTML as such: <a id="LB_cmdCSV" href="javascript:__doPostBack('LB$cmdCSV','')">Export Data</a></div> I also found this function in the

爬虫-图片懒加载技术、selenium和PhantomJS

匿名 (未验证) 提交于 2019-12-02 23:03:14
引入 今日概要 图片懒加载 selenium phantomJs 谷歌无头浏览器 知识点回顾 验证码处理流程 今日详情 动态数据加载处理 一.图片懒加载 什么是图片懒加载? 案例分析:抓取站长素材http://sc.chinaz.com/中的图片数据 - 运行结果观察发现,我们可以获取图片的名称,但是链接获取的为空,检查后发现xpath表达式也没有问题,究其原因出在了哪里呢? 图片懒加载概念: 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将大大增加页面的首屏加载时间。为了解决这种问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏图片请求数的技术就被称为“图片懒加载”。 网站一般如何实现图片懒加载技术呢? 在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original......)去存放真正的图片链接而并非是直接存放在src属性中。当图片出现到页面的可视化区域中,会动态将伪属性替换成src属性,完成图片的加载。 站长素材案例后续分析:通过细致观察页面的结构后发现,网页中图片的链接是存储在了src2这个伪属性中 二.selenium 什么是selenium? 是Python的一个第三方库,对外提供的接口可以操作浏览器

从phantomjs到firefox--headless

匿名 (未验证) 提交于 2019-12-02 22:56:40
一个程序员的周末还是挺无聊的,所以闲来无事写个爬虫,爬点有意思的东西,你懂得。 因为电脑重做系统,之前的环境都得重新配,因为页面内容的特殊性,需要通过js渲染才能够看到,所以需要selenium+phantomjs的配合才能够完成爬虫。然而,当我下载phantomjs以及selenium后,却告诉我,最新版的selenium不再支持phantomjs,请换headless的firefox或者chrome。没有办法,人家抛弃phantomjs了,因为本机没有chrome,干脆就选用firefox。 1.selenium调用firefox接口时,需要中间件geckodriver,不然会报错 下载地址: https://github.com/mozilla/geckodriver/releases 根据自己的操作系统下载对应的文件,解压之后将可执行文件放在/usr/bin (只针对linux系统) 2.配置headless 看网络教程使用:set_headless,发现已经不允许了,提示需要setter来进行配置 from selenium import webdriver from selenium . webdriver import FirefoxOptions options = FirefoxOptions () options . add_argument ( '-

selenium抓取淘宝数据报错:warnings.warn(&#039;Selenium support for PhantomJS has been deprecated, please use headless

匿名 (未验证) 提交于 2019-12-02 22:56:40
ssh: // root@192.168.33.12:22/root/anaconda3/bin/python3 -u /www/python3/maoyantop100/meishi_selenium.py /root/anaconda3/lib/python3. 6 /site-packages/selenium/webdriver/phantomjs/webdriver.py: 49 : UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn( ‘ Selenium support for PhantomJS has been deprecated, please use headless ‘ 错误原因:Selenium 已经弃用 PhantomJS ,请使用火狐或者谷歌无界面浏览器。 解决方法:selenium的版本问题,使用 pip show selenium 显示默认安装的是 3.13.1 版本 卸载当前版本 pip uninstall selenium 卸载之后重新安装selenium 版本 2.48.0 安装成功,专门写出来这个版本号是因为我使用2.0

关于python中phantomjs无法访问网页的处理

匿名 (未验证) 提交于 2019-12-02 22:54:36
笔者使用的系统是linux ubuntu,最近在学习爬虫的过程中遇到了一个抓狂的问题,我尝试使用selenium加phantomjs来登陆网页的时候,Pythony一直提示selenium无法找到元素,不管我怎样修改定位的方法,永远出现No such elements的错误,让我几乎抓狂。再确认了测试了好几遍编写的代码后,我将程序出现的错误定位在了其中这几行代码里面 >>> from selenium import webdriver >>> driver = webdriver.PhantomJS() >>> driver.get( "http://weibo.com" ) 正常情况下,这三行无比简单的代码是不可能有错的,但是事实告诉我错就在这里。 >>> driver.page_source ' <html> <head> </head> <body> </body> </html> ' 我尝试查看网页的源码,结果出来的就只有这些,新浪主页就这点东西??? >>> driver. get ( "asfgsdagshgdfh" ) >>> driver.page_source ' <html> <head> </head> <body> </body> </html> ' 接下来我尝试乱输了一堆字符进去,查看源代码,还是这堆东西,这就让我比较抓狂了。随便输都是这样