用selenium爬动态网页
0-安装
我用python2.7,用pip安装selenium即可,phantomjs到官网下载安装,也不难。
1-主要参考的几篇文章
Python爬虫利器四之PhantomJS的用法
Python爬虫利器五之Selenium的用法
2-代码
- from selenium import webdriver
- from urllib2 import quote
- import os
- import time
- os.getcwd()
- os.chdir('/Users/.../python/mywork')
- path='/usr/local/phantomjs-2.1.1-macosx 2/bin/phantomjs'
- driver = webdriver.PhantomJS(executable_path=path)
- def get_company_info(nm):
- url='http://www.tianyancha.com/search?key='+quote(nm)+'&checkFrom=searchBox'
- driver.get(url)
- time.sleep(1.0)
- try:
- url1=driver.find_element_by_css_selector('.query_name').get_attribute('href')
- driver.get(url1)
- time.sleep(1.0)
- text2=driver.find_element_by_css_selector('.company_info_text').text
- text3=driver.find_element_by_css_selector('.company-content').text
- print text2+text3
- except:
- print u"无法查到该公司相关信息"
3-查询结果
- >>> get_company_info('百度')
- 北京百度网讯科技有限公司
- 电话: 010-59928888 邮箱: 暂无
- 网址: www.baidu.com
- 地址: 北京市海淀区上地十街10号百度大厦2层法定代表人:
- 注册资本:
- 梁志祥
- 89000 万元
- 状态:
- 注册时间:
- 开业
- 2001-06-05
- 行业:电信、广播电视和卫星传输服务
- 工商注册号:110108002734659
- 企业类型:有限责任公司(自然人投资或控股)
- 组织机构代码:802100433
- 营业期限:2001-06-05至2021-06-04
- 登记机关:北京市工商行政管理局
- 核准日期: 2016-05-11
- 统一信用代码:91110000802100433B
- 注册地址:北京市海淀区上地十街10号百度大厦2层
- 经营范围:因特信息服务业务(除出版、教育、医疗保健以外的内容);第一类增值电信业务中的在线数据处理与交易处理业务、国内因特网虚拟专用网业务、因特网数据中心业务;第二类增值电信业务中的因特网接入服务业务、呼叫中心业务、信息服务业务(不含固定网电话信息服务和互联网信息服务);利用互联网经营音乐娱乐产品,游戏产品运营,网络游戏虚拟货币发行,美术品,演出剧(节)目,动漫(画)产品,从事互联网文化产品展览、比赛活动(网络文化经营许可证有效期至2016年11月21日);图书、电子出版物、音像制品批发、零售、网上销售;设计、开发、销售计算机软件;技术服务、技术培训、技术推广;经济信息咨询;利用www.baidu.com、www.hao123.com(www.hao222.net、www.hao222.com)、网站发布广告;设计、制作、代理、发布广告;货物进出口、技术进出口、代理进出口;医疗软件技术开发;委托生产电子产品、玩具、照相器材;销售家用电器、机械设备、五金交电、电子产品、文化用品、照相器材、计算机、软件及辅助设备、化妆品、卫生用品、体育用品、纺织品、服装、鞋帽、日用品、家具、首饰、避孕器具、工艺品、钟表、眼镜、玩具、汽车及摩托车配件、仪器仪表、塑料制品、花、草及观赏植物、建筑材料、通讯设备;预防保健咨询;公园门票、文艺演出、体育赛事、展览会票务代理。(企业依法自主选择经营项目,开展经营活动;增值电信业务以及依法须经批准的项目,经相关部门批准后依批准的内容开展经营活动;不得从事本市产业政策禁止和限制类项目的经营活动。)
- >>> get_company_info('你是鬼你是鬼你是鬼')
- 无法查到该公司相关信息
4-总结
会写一点python了
用selenium爬动态网页的更多相关文章
- Python爬虫 使用selenium处理动态网页
对于静态网页,使用requests等库可以很方便的得到它的网页源码,然后提取出想要的信息.但是对于动态网页,情况就要复杂很多,这种页面的源码往往只有一个框架,其内容都是由JavaScript渲染出来的 ...
- 在python使用selenium获取动态网页信息并用BeautifulSoup进行解析--动态网页爬虫
爬虫抓取数据时有些数据是动态数据,例如是用js动态加载的,使用普通的urllib2 抓取数据是找不到相关数据的,这是爬虫初学者在使用的过程中,最容易发生的情况,明明在浏览器里有相应的信息,但是在pyt ...
- selenium获取动态网页信息(某东)-具体配置信息
需要安装的包: selenium 关于软件的驱动:selenium之 驱动环境配置chrome.firefox.IE 1 # encoding:utf-8 2 # Author:"richi ...
- selenium+chromdriver 动态网页的爬虫
# 获取加载更多的数据有 2 种方法# 第一种就是直接找数据接口, 点击'加载更多' 在Network看下, 直接找到数据接口 # 第二种方法就是使用selenium+chromdriver # se ...
- C# HtmlAgilityPack+Selenium爬取需要拉动滚动条的页面内容
现在大多数网站都是随着滚动条的滑动加载页面内容的,因此单纯获得静态页面的Html是无法获得全部的页面内容的.使用Selenium就可以模拟浏览器拉动滑动条来加载所有页面内容. 前情提要 C#HtmlA ...
- 动态网页爬取例子(WebCollector+selenium+phantomjs)
目标:动态网页爬取 说明:这里的动态网页指几种可能:1)需要用户交互,如常见的登录操作:2)网页通过JS / AJAX动态生成,如一个html里有<div id="test" ...
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
- 动态网页爬取样例(WebCollector+selenium+phantomjs)
目标:动态网页爬取 说明:这里的动态网页指几种可能:1)须要用户交互,如常见的登录操作:2)网页通过JS / AJAX动态生成.如一个html里有<div id="test" ...
- 爬虫(三)通过Selenium + Headless Chrome爬取动态网页
一.Selenium Selenium是一个用于Web应用程序测试的工具,它可以在各种浏览器中运行,包括Chrome,Safari,Firefox 等主流界面式浏览器. 我们可以直接用pip inst ...
随机推荐
- git使用问题及解决方法
1. 设置pull默认rebasegit config --global pull.rebase true 2. 问题解决:Unlink of file '.git/objects/pack/pack ...
- 阿里云Centos 7上面安装mysql教程
1 软件的基本安装过程 1 卸载已有的mysql 1.查看系统是否安装了mysql软件 rpm -qa|grep -i mysql 2.将已经安装过的软件卸载掉.注意:这样的卸载是不彻底,不过这里够用 ...
- React.js 小书 Lesson8 - 组件的组合、嵌套和组件树
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson8 转载请注明出处,保留原文链接和作者信息. 继续拓展前面的例子,现在我们已经有了 Heade ...
- RegExp正则表达式内容
在线测试工具:http://leaverou.github.io/regexplained/ RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法:/pattern/at ...
- 用AJAX实现页面登陆以及注册用户名验证
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX 是一种用于创建快 ...
- 【学习笔记】HTML基础:列表、表格与媒体元素
一.列表是信息资源的一种展现形式,它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能够快速的获取相应的信息. 1.无需列表 <ul> <li>第一项</li ...
- java基础--提示对话框的使用
java基础--提示对话框的使用 2019-03-17-00:35:50-----云林原创 一.显示信息对话框:使用“JOptionPane.showMessageDialog”显示: 图标 对话 ...
- java中的集合和视图
一.集合的概念 何为集合,集合就是相当于一个对象的容器.集合是类似数组的一个作用.既然有了数组,为何还要有集合呢,由于数组对象一旦创建,其大小便不可以更改,我们只能往数组中存放创建时数量的对象.而集合 ...
- javascript实现数据结构与算法系列
1.线性表(Linear list) 线性表--简单示例及线性表的顺序表示和实现 线性表--线性链表(链式存储结构) 线性表的静态单链表存储结构 循环链表与双向链表 功能完整的线性链表 线性链表的例子 ...
- Revolution of Unix