python写爬虫6-selenium的使用
2017-02-16 15:34
471 查看
python写爬虫6-selenium的使用
目前,前端技术比较火热。各种前端技术、框架层出不穷。大部分站点的数据都是异步动态加载,相比获取静态内容,要抓取动态内容稍微麻烦点常用的两种抓取动态网页数据的方法:
1.借助Firebug等浏览工具,分析请求数据,获得数据接口地址。然后直接动态改变接口参数,获取json格式的数据。
2.使用浏览器渲染引擎触发javascript事件,借助工具WebKit,Selenium
借助WebKit,我们可以自定义浏览器渲染引擎,这样就能完全控制想要执行的行为,如果不需要这么灵活,那可借助Selenium,它提供了使浏览器自动化的API接口,本文简单介绍Selenium的使用
环境
Mac
python2.7
selenium3.0.2
firefox51.0.1
1.需求
浏览器自动搜索北京赶集网 ‘亦庄’附近的租房信息2.安装selenium
pip install selenium (默认安装最新版,我的是3.0.2)
现在直接调用selenium使用的话,会爆错,且不能调动浏览器;stackoverflow.com有网友说用2.53.2(具体版本记不清了),这个版本能调起浏览器,但仍会爆错,接着浏览器自动关闭。所以,还是直接用版本3吧。具体解决方法下面会讲到
3.selenium依赖项
下载geckodriver我下载的是geckodriver-v0.13.0-macos.tar.gz,将解压后的文件放在你指定的目录下,我放在了桌面上,如下图:
下载地址 https://github.com/mozilla/geckodriver/releases
参考https://www.zhihu.com/question/49568096
4.编写代码
以北京赶集网为例:http://bj.ganji.com/fang1/分析此页面:
#!/usr/bin/env python # -*- coding: utf-8 -*- from selenium import webdriver import time dr = webdriver.Firefox(executable_path = '/Users/xxx/desktop/geckodriver') print 'Browser will open.' dr.get('http://bj.ganji.com/fang1/') dr.implicitly_wait(5) # 5s内如果页面没有加载出这个控件,将抛出异常 dr.find_element_by_id('search_keyword').send_keys(u'亦庄') dr.implicitly_wait(5) dr.find_element_by_id('search_button').click() # 模拟点击 time.sleep(5) dr.quit() print 'Browser is close'
相关文章推荐
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- Python爬虫学习——使用selenium和phantomjs爬取js动态加载的网页
- python爬虫:使用Selenium模拟浏览器行为
- [Python爬虫]使用Selenium操作浏览器订购火车票
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(上)
- python爬虫,selenium使用,Firefox-chrome-IE问题解决方法,selenium的基本操作
- python爬虫由浅入深11---selenium的基础与使用
- [Python] - 爬虫之 Selenium 的使用
- python3[爬虫实战] 使用selenium,xpath爬取京东手机(下)
- Python 爬虫基础Selenium库的使用(二十二01)
- 使用python+selenium制作浏览器爬虫,彻底解决ajax异步加载问题(待更新)
- python爬虫的最佳实践(五)--selenium+PhantomJS的简单使用
- python3 [爬虫入门实战] 爬虫之使用selenium 爬取百度招聘内容并存mongodb
- Python爬虫——5-2.使用selenium和phantomjs模拟QQ空间登录
- Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
- python爬虫积累(一)--------selenium+python+PhantomJS的使用
- 【Python3.6爬虫学习记录】(七)使用Selenium+ChromeDriver爬取知乎某问题的回答
- python3 [爬虫实战] 微博爬虫京东客服之Selenium + Chrom浏览器的使用(上)
- 浅谈python爬虫使用Selenium模拟浏览器行为
- Python使用Selenium webdriver爬虫某电商商品数据