1.Selenium
1.什么是selenium?
(1)Selenium是一个用于Web应用程序测试的工具。
(2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。
(3)支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动 真实浏览器完成测试。
(4)selenium也是支持无界面浏览器操作的。
2.如何安装selenium?
pip install selenium
3.selenium的使用步骤?
(1)导入:
from selenium import webdriver
(2)创建谷歌浏览器操作对象:
path = 谷歌浏览器驱动文件路径
browser = webdriver.Chrome(path)
(3)访问网址
url = 要访问的网址 browser.get(url)
记得下载的时候,一定要注意版本一致,只需要保证前三位数字是相同的即可。
#1导入selenium
from selenium import webdriver
#2创建浏览器操作对象
path = '/Users/Library/Mobile Documents/com~apple~CloudDocs/pythonProject1/python_crawler/chromedriver'
browser = webdriver.Chrome(path)
#3访问网站
url = 'https://www.jd.com/'
browser.get(url)
#page_source获取网页源码
content = browser.page_source
print(content)
查询周杰伦的信息
from selenium import webdriver
from selenium.webdriver.common.by import By
path = 'chromedriver'
browser = webdriver.Chrome(path)
url = 'http://www.baidu.com'
browser.get(url)
import time
time.sleep(2)
#获取文本框对象
input = browser.find_element(by=By.ID,value='kw')
#在文本框中输入周杰伦
input.send_keys('周杰伦')
time.sleep(2)
button = browser.find_element(by=By.ID,value='su')
button.click()
time.sleep(2)
#滑倒底部
js_button = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_button)
time.sleep(2)
#获取下一页的按钮
next = browser.find_element(by=By.XPATH,value='//a[@class="n"]')
#点击下一页
next.click()
time.sleep(2)
#回到上一页
browser.back()
time.sleep(2)
#然后再回去
browser.forward()
time.sleep(3)
browser.quit()
4‐3:
交互
点击:click()
输入:send_keys()
后退操作:browser.back()
前进操作:browser.forword()
模拟JS滚动:
- js=‘document.documentElement.scrollTop=100000’
- browser.execute_script(js)
执行js代码 获取网页代码:page_source 退出:browser.quit()
2.Phantomjs
1.什么是Phantomjs?
(1)是一个无界面的浏览器
(2)支持页面元素查找,js的执行等
(3)由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多
2.如何使用Phantomjs?
(1)获取PhantomJS.exe文件路径path
(2)browser = webdriver.PhantomJS(path)
(3)browser.get(url) 扩展:保存屏幕快照:browser.save_screenshot(‘baidu.png’)
from selenium import webdriver
path = '/Users/Library/Mobile Documents/com~apple~CloudDocs/pythonProject1/python_crawler/phantomjs'
browser = webdriver.PhantomJS(path)
url = 'https://www.baidu.com'
browser.get(url)
browser.save_screenshot('baidu.png')