动态网页抓取Selenium的安装与使用

来源:互联网 发布:智慧城市优化公共服务 编辑:程序博客网 时间:2024/05/21 10:22

selenium的安装与使用

一.回顾

前面我们爬取的网页列如百度贴吧,起点中文网都是静态网页,这样的网页在浏览器中展示的内容都在HTML源码中。但是现在很多网站都是采用JavaScript来展示网页内容,这时候爬取静态网页的技术就不管用了。爬取动态网页有两种方法:
1.分析网页找到真实网页地址(如爬取中彩网双色球信息例子),
2.使用selenium模拟浏览器的方法。

二.Selenium简介与安装
1.Selenium是什么?
Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。
2.安装
直接使用pip命令安装即可!

pip install selenium

安装可能会失败请多试几次 下载太慢的话我们可以进行pip换源再下载
一些国内的源:
   阿里云 http://mirrors.aliyun.com/pypi/simple/
  中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
  豆瓣(douban) http://pypi.douban.com/simple/
  清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/

 具体步骤:

这里写图片描述
如图进入用户目录下的APPData下的Local下的pip文件夹没有就创建,创建pip.ini文件 复制以下代码保存即可。

[global]timeout=6000index-url=https://pypi.tuna.tsinghua.edu.cn/simple

三.浏览器的选择与安装
1.查看selenium webdriver 支持的浏览器类型

from selenium import webdriverhelp(webdriver)

常用的浏览器有 phantomjs 谷歌 火狐
2.安装phantomjs
官网下载:”http://phantomjs.org/download.html”
安装:将phantomjs压缩包里的可执行文件加入到python目录如果使用anaconda的话加入到anaconda目录(与python.exe在同一级目录)
如图:

这里写图片描述

3.测试
进入python输入以下命令没有错误即可!

from selenium import webdriverdriver=webdriver.PathtomJS()

四.应用
我们用百度来测试下selenium+phantomjs的功能。测试模拟输入关键字进行搜索。这里我们用到了一种新的元素定位方法 xpath
有兴趣的可以看下菜鸟教程”http://www.runoob.com/xpath/xpath-tutorial.html“学习下他的语法

#! -*- encoding:utf-8 -*-from selenium import webdriverbrowser=webdriver.PhantomJS()browser.get('http://www.baidu.com')browser.implicitly_wait(10) #他是一个智能等待函数 因为利用JS引擎运行需要时间#找到页面表单的文本框textElement=browser.find_element_by_id('kw')textElement.send_keys('python selenium')    #模拟按键输入#找到提交按钮submitElement=browser.find_element_by_id('su')submitElement.click() #点击元素print (browser.title)#xpath解析"""定位网页中的元素(locate elements)    find_element_by_id    find_element_by_name    find_element_by_xpath    find_element_by_link_text    find_element_by_partial_link_text    find_element_by_tag_name    find_element_by_class_name    find_element_by_css_selector操作元素方法:    clear 清除元素的内容    send_keys 模拟按键输入    click 点击元素    submit 提交表单"""

浏览器的选择有很多种这里选择的是.PhantomJS(),他是没有界面的。
除了选择:browser=webdriver.PhantomJS()你还可以选择带界面的浏览器如谷歌 火狐(前提电脑里要有这样的浏览器)如我们可以选择:

browser=webdriver.Chrome()browser=webdriver.Firefox()

但是直接使用会报错
这里写图片描述
根据提示我们知道我们缺少了“geckodriver”我们可以在网上下载他
“https://github.com/mozilla/geckodriver/releases”
记得下载与你浏览器版本一致或兼容的geckodriver,然后放到你的火狐浏览器目录下
这里写图片描述

谷歌浏览器相同道理安装,Chromedriver版本与浏览器不兼容可能会出现以下问题:

这里写图片描述

版本参考:
Chromedriver:http://blog.csdn.net/huilan_same/article/details/51896672”

driver:”http://chromedriver.storage.googleapis.com/index.html”

最好把环境变量加到path上

这里写图片描述

path:

这里写图片描述

到这里坑也就填得差不多了 遇到问题大家一定要的记得多百度哦 。环境搭好了后面的爬虫就轻松加愉快啦!

参考文章:
“http://blog.csdn.net/huilan_same/article/details/51896672”
“https://www.cnblogs.com/yousuosiyss/p/6882420.html?utm_source=itdadao&utm_medium=referral”
“https://zhidao.baidu.com/question/757233000558557924.html”

原创粉丝点击