python爬虫上手 笔记<3>

来源:互联网 发布:华为盒子看电影软件 编辑:程序博客网 时间:2024/06/10 06:47

上网进行咨询,stackoverflow上有个好心的程序员表示,他使用PhantomJS也实现不了,但是可以改用chrome来实现……看来人家专家也没辙,我也改chrome吧。这位程序员介绍说直接用webdriver.chrome()是有头的,如果在win上,建议用chrome canary。菜鸟表示这个是什么?


上网搜索:所谓无头浏览器其实可以简单解释为没有UI,不会跳窗口的浏览器,仅有个浏览器内核。这样调用的时候就能节省不少资源。它的出现就是为了解决解析JS必须使用浏览器内核,但是又太占用资源的问题的。最初大家都在用PhantomJS,但是现在Chrome Canary/Firefox这些的无头版出来以后,PhantomJS的开发者都辞职了……. 看来软件还是进步快,书上看的都被淘汰了……...


没办法,装Chrome Canary(毕竟是一家的,想来应该会比Firefox顺利)。然后到Chromium的网站上下载chromedriver.exe,据说chrome需要靠这个来引导运行。不纠结,照着下下来放好。然后shift + F10,然而并没有用,提示找不到chrome binary,网上查要指定binary_location的位置。但是什么是binary啊?exe文件?网上列的全是MacOS下的路径,没用过看不懂啊。突然看到有人说是环境没好,把chrome重装一遍就好了。不犹豫,装了chrome stable版本。shift+f10,果然好了。不过一下子跳出一个浏览器来——看样子我没有用成headless。

继续想办法,现在问题改为如何设置成无头模式,在win10下。考虑是否是因为chrome默认不是chrome canary的文件,而是用了新装的chrome stable呢?于是查询binary location的设置方式。在google搜索 “win10 chrome canary binary_location”,有博客描述啊,写软件就是靠这样在网上打听来打听去的。先用如下代码设置

chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('--headless')driver = webdriver.Chrome(chrome_options=chrome_options)


然后最重要的,在windows下,chrome canary 的binary_location是在 

chrome_options.binary_location = 'C:/Users/Roy/AppData/Local/Google/Chrome SxS/Application/chrome.exe'
这个和我的chromecanary的安装路径是一摸一样的(chrome canary的安装是双击全自动的,都选不了位置)。没办法,小白就是要讲的这么具体直白。
添入代码中,现在窗口不跳了。


原创粉丝点击