如何用Python控制python firefoxbinary

每天三分钟,知晓天下事,视频、语音、文字综合版任您挑!微信搜索fgzadmin关注或点击标题下方可以快速关注。
原创不易,认可价值,动手指点并转发,就是最好的支持与肯定。淘宝特约店址:http://goldengame.
深夜十点,陪你读书。
慢工出细活
由于中、美、俄三国自2008年后基本上长期上演“三国杀”(昨天文章《原创丨中美俄世纪三国杀,谁是百年长跑冠军
其实这是个有奖活动贴。n其实这是个有奖活动贴。n其实这是个有奖活动贴。
思考者正在阅读原创丨三次世界大战亚洲开打,美国推演靠谱吗?原创丨央行连出两大招,有何深意?微历史丨张学良为啥
美国总统奥巴马日在接受媒体采访时表示,2011年对利比亚局势的干涉,是其总统生涯中做出的最
我们都知道,美国软实力很厉害,在过去很多年都一直掌控者国际话语权,他们可以提着民主、自由、人权的大棒满世界乱
思考者正在阅读原创丨重大变革,我们的世界都将逃不过被TA重塑!原创丨中美黄岩岛较量,谁是最后赢家?原创丨你射API例子:用Python驱动Firefox采集网页数据 - 华天清 - 博客园
随笔 - 32, 文章 - 0, 评论 - 8, 引用 - 0
1,引言本文讲解怎样用Python驱动Firefox浏览器写一个简易的网页数据采集器。开源Python即时网络爬虫项目将与Scrapy(基于twisted的异步网络框架)集成,所以本例将使用Scrapy采集淘宝这种含有大量ajax代码的网页数据,但是要注意本例一个严重缺陷:用Selenium加载网页的过程发生在Spider中,破坏了Scrapy的架构原则。所以,本例只是为了测试Firefox驱动和ajax网页数据采集这两个技术点,用于正式运行环境中必须予以修改,后续的文章将专门讲解修正后的实现。
请注意,本例用到的xslt文件是通过MS谋数台保存提取器后,通过API接口获得,一方面让python代码变得简洁,另一方面,节省调试采集规则的时间。详细操作请查看2,具体实现2.1,环境准备
需要执行以下步骤,准备Python开发和运行环境:
安装Python--下载安装并部署好环境变量 (本文使用Python版本为3.5.1)
安装lxml-- 下载对应版本的.whl文件,然后命令行界面执行 "pip install .whl文件路径"
安装Scrapy--命令行界面执行 "pip install Scrapy",详细请参考
安装selenium--命令行界面执行 "pip install selenium"
安装Firefox--下载安装
上述步骤展示了两种安装:1,安装下载到本地的wheel包;2,用Python安装管理器执行远程下载和安装。
2.2,开发和测试过程
以下代码默认都是在命令行界面执行
1),创建scrapy爬虫项目simpleSpider
E:\python-3.5.1&scrapy startproject simpleSpider
2),修改settings.py配置
有些网站会在根目录下放置一个名字为robots.txt的文件,里面声明了此网站希望爬虫遵守的规范,Scrapy默认遵守这个文件制定的规范,即ROBOTSTXT_OBEY默认值为True。在这里需要修改ROBOTSTXT_OBEY的值,找到E:\python-3.5.1\simpleSpider\simpleSpider下文件settings.py,更改ROBOTSTXT_OBEY的值为False。
3),导入API模块
在项目目录E:\python-3.5.1\simpleSpider下创建文件gooseeker.py(也可以在 的core文件夹中直接下载),代码如下:
4),创建SimpleSpider爬虫类在项目目录E:\python-3.5.1\simpleSpider\simpleSpider\spiders下创建文件simplespider.py,代码如下:
5),启动爬虫
在E:\python-3.5.1\simpleSpider项目目录下执行命令
E:\python-3.5.1\simpleSpider&scrapy crawl simplespider
6),输出文件
采集到的网页数据结果文件是:淘宝天猫_商品详情4544.xml
调用Firefox,IE等全特性浏览器显得有点太重量级,很多场合可以考虑轻量级的浏览器内核,比如,casperjs和phantomjs等。同时运行在没有界面的浏览器(headless browser,无头浏览器)模式下,也许可以对网页数据采集性能有所提升。
然后,最重要的一点是要写一个 Scrapy 的下载器,专门驱动这些浏览器采集网页数据,也就是把这个功能从Spider中迁移出来,这样才符合Scrapy的整体框架原则,实现事件驱动的工作模式。
4,相关文档
5,集搜客GooSeeker开源代码下载源
1, 6,文档修改历史
1,:V1.02,:V1.1,在第一段明显位置注明本案例的缺陷Python调用Firefox遇到的问题
Python调用Firefox遇到的问题
记录人:zff
记录时间:1/29/:00 PM
Python调用Firefox遇到的问题
刚刚开始用Python调用Firefox的时候,不知道为什么只能打开浏览器,却无法打开网页
from selenium import webdriver
import time
driver = webdriver.Firefox()
time.sleep(5)
driver.get("")
查看了网上的解释之后说可能是Firefox和selenium的版本兼容问题,也举出了Firefox和selenium的相对应版本,但是从我个人感觉来看并不是版本的问题,因为对于Firefox和selenium我并没有升级,而且之后所说的profile的问题我也按照说明来解决不了
from selenium import webdriver
import time
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
firefoxBin = os.path.abspath(r"D:\\firefox\\firefox.exe")
os.environ["webdriver.firefox.bin"] = firefoxBin
firefox_profile = webdriver.FirefoxProfile(r"C:\Users\Administrator\AppData\Roaming\Mozilla\Firefox\Profiles\3pbv2lti.default")
driver = webdriver.Firefox(firefox_profile=firefox_profile)
之后采用了网上所说的各种方法仍然难以解决,加入了profile也不行,后面升级了selenium
pip install -U selenium
发现报错是
<mon.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
根据网上的解释是selenium 3.x开始,webdriver/firefox/webdriver.py的init中,executable_path="geckodriver";而2.x是executable_path="wires"
解决方法是
2.解压缩之后放在Firefox的安装目录下
3.把Firefox的安装目录放在系统变量里面
4.使用cmd重启
from selenium import webdriver
import time
driver = webdriver.Firefox(executable_path = r'D://firefox//geckodriver')
time.sleep(5)
driver.get("")}

我要回帖

更多关于 python firefoxbinary 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信