用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 ...
随机推荐
- DP Intro - Tree DP
二叉苹果树 题目 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接的结点 ...
- Android IntentFilter 匹配原则浅析
1 Intent分为两大类,显式和隐式. 显式事件,就是指通过 component Name 属性,明确指定了目标组件的事件. 比如我们新建一个Intent,指名道姓的说,此事件用于启动名为" ...
- 转-------基于R-CNN的物体检测
基于R-CNN的物体检测 原文地址:http://blog.csdn.net/hjimce/article/details/50187029 作者:hjimce 一.相关理论 本篇博文主要讲解2014 ...
- centOS查看apache版本的命令
在centOS 7下: 命令如下: httpd -v
- mysql存储过程嵌套循环并分页处理数据
业务背景:公司存证产品升级,随着数据量的增加,存证产品线按业务分表,导致以往的存证关联数据需要做数据同步更新.版本发布前,通过当前存储过程解决数据升级问题. ##创建存证文档关联情况下更新所用存储过程 ...
- Javascript模块化编程(一)模块的写法最佳实践六、输入全局变量 独立性是模块的重要特点,模块内部最好不与程序的其他部分直接交互。 为了在模块内部调用全局变量,必须显式地将其他变量输入模块。
Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块但是,Javascript不是一种模块化编程语言,它不支持类clas ...
- 循环结构 while
while 循环语句可以根据某些条件重复执行一条t-sql 语句或一个语句块 语法: while (条件) begin 语句或语句块 end 程序调试 alt+f5 启动调试 f9 切换断点 f10 ...
- 【读书笔记】C#高级编程(一).NET体系结构
写在前面:从业两年来,一直停留在会用的阶段,而没有去仔细思考过为什么这么用,之前也大致扫过<c#高级编程>一书,这次想借一袭脑海中的冲动,再次好好仔细过过这本书,夯实基础,温故知新. 一. ...
- PHP 文件锁和常用文件函数
文件锁 bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件 ...
- C# tcp udp 串口 通信
简单的实现tcp同步和异步,udp,串口通信 static List<TcpClientState> clientArray = new List<TcpClientState> ...