最帅爬虫_Selenium 数据获取

一、什么是Selenium

Selenium 是一个 Web 的自动化测试工具,最初是为网站自动化测试而开发的,类型像 我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同的是 Selenium 可以直接运行 在浏览器上,它支持所有主流的浏览器(包括 PhantomJS 这些无界面的浏览器)。

Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面 截屏,或者判断网站上某些动作是否发生。 Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起 才能使用。

但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫PhantomJS的工具代替真实的浏览器。

可以从 PyPI 网站下载 Selenium 库 http://pypi.python.org/simple/selenium ,
也可以用 第三方管理器 pip 命令安装:pip install selenium==2.48.0

二、什么是PhantomJS

PhantomJS 是一个基于 Webkit 的“无界面”(headless)浏览器,它会把网站加载到内存并 执行页面上的 JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器要高效。

如果我们把 Selenium 和 PhantomJS 结合在一起,就可以运行一个非常强大的网络爬 虫了,这个爬虫可以处理 JavaScript、cookie、headers,以及任何我们真实用户需要做的事 情。

注意:PhantomJS 只能从它的官方网站 http://phantomjs.org/download.html) 下载。

因为 PhantomJS 是一个功能完善(虽然无界面)的浏览器而非一个 Python 库,所以它不需要像 Python 的其他库一样安装,但我们可以通过 Selenium 调用 PhantomJS 来直接使用。

方法一:设置环境变量:C:\Users\cz\Downloads\phantomjs-2.1.1-windows\bin 打开终端命令行,输入:phantomjs,能够进行到 phantomjs 命令行,则表示安装成功,如图 5-8 所示
在这里插入图片描述

三、百度 (Selenium+Phantom 快速入门)

#导包
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#selnium使用步骤:
# 1、创建浏览器驱动---创建的过程中其实就是在指定是哪个浏览器的驱动
# driver = webdriver.PhantomJS()  # 使用phantomjs无界面浏览器
driver = webdriver.Chrome()   # 使用chrome有界面浏览器


# 2、请求url(浏览器地址栏中输入url回车)
driver.get('https://www.baidu.com/')


# 3、做一些浏览器操作

#(1)最大化
# driver.maximize_window()

#(2)获取页面源代码
#page_source就是浏览器html中所有数据,将js执行之后得到页面源代码

#你能在浏览器看到什么,基本上就有什么。---F12开发者工具下---Element的内容
html_str = driver.page_source
# print(html_str)

# (3)获取页面元素返回的对象:WebElement
# 通过id获取
input_id = driver.find_element_by_id('kw')
# 通过xpath
input_xpath = driver.find_element_by_xpath('//*[@id="kw"]')
# 通过css选择器
input_css = driver.find_element_by_css_selector('#kw')
print(input_id,input_xpath,input_css,sep='\n')

# (4)WebElement的操作
# 获取属性
# print('maxlength属性',input_id.get_attribute('maxlength'))
# 获取内容
# print('maxlength内容',input_id.text)
# input-->输入

# 截屏
driver.save_screenshot('befor.png')
input_id.send_keys('python爬虫')
driver.save_screenshot('after.png')

# btn-->点击
# 点击百度一下
driver.find_element_by_xpath('//*[@id="su"]').click()

# form表单-->提交
# 获取cookies--->cookie池会用到
cookies = driver.get_cookies()
# print(cookies)
# 重新输入一个内容查找

# input_id.send_keys(Keys.CONTROL,'a')
# input_id.send_keys(Keys.CONTROL,'x')
# input_id.send_keys('刘亦菲')

# 退出
driver.close()  # 关闭选项卡
driver.quit()   # 点x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值