网络爬虫(五):selenium的基本使用

selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

安装selenium库

在命令行中输入

pip install selenium

等待下载安装即可,使用selenium还需要为本机配置对应浏览器的驱动,如果是chrome浏览器,在确定浏览器的版本之后,找到对应的chromedriver下载即可。
chromedriver的下载地址如下:
http://chromedriver.storage.googleapis.com/index.html

一个小小的例子

作用:打开尔雅的登录页面,自动输入账户密码,并点击登陆,在学习页面点击第一个课程。

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC #期待的条件
from selenium.webdriver.support.ui import WebDriverWait
from urllib.parse import quote#对中文进行编码
from pyquery import PyQuery 
from time import sleep


KEYWORD = 'ipad'
browser = webdriver.Chrome('D:\\chromdriver\\chromedriver.exe')#根据自己的路径进行改正
wait = WebDriverWait(browser,10)
url ='http://passport2.chaoxing.com/wlogin'
browser.get(url)
# html = browser.page_source
# doc = PyQuery(html)
def send_phone(phone_number):#输入电话号码
	phone_box = wait.until(  
		EC.presence_of_element_located(
			(By.CSS_SELECTOR,'#phone')
			)
		)
	phone_box.send_keys(phone_number)
def send_password(password):#输入密码
	pass_word = wait.until(
	EC.presence_of_element_located(
	(By.CSS_SELECTOR,'#code')
		)
	)
	pass_word.send_keys(password)
def landing():
	phone_number='************'
	password ='***********'
	send_phone(phone_number)
	send_password(password)
	landing_box = wait.until(
	EC.presence_of_element_located(
	(By.CSS_SELECTOR,'body > div.g_login.posCenter > div.g_l_left.fl > div > div.g_submit.mt40')
		)
	)
	landing_box.click()
	sleep(5)
	# html = browser.page_source
	# doc = PyQuery(html)
	# print(doc)
def interface():
	browser.switch_to.frame('frame_content')    
	shuake = wait.until(
	EC.presence_of_element_located(
	(By.CSS_SELECTOR,'body > div > div:nth-child(3) > div.ulDiv > ul > li:nth-child(1) > div.Mconright.httpsClass > h3 > a')
		)
	)
	shuake.click()
landing()
interface()

注:因为尔雅在个人界面的html语言中加入了frame( 标签定义 中的一个特定的子窗口(框架))所以先要定位到这个框架中才可以进进行元素的定位,语句为:

browser.switch_to.frame('frame_content')    

猜你喜欢

转载自blog.csdn.net/qq_42785117/article/details/83503346