admin 管理员组文章数量: 887021
第五章 Selenium的学习
- 5.1 Selenium_基本使用
- 5.2 Selenium_元素定位
- 5.3 selenium_元素信息及其交互
- 5.4 selenium_交互
- 5.5 PhantomJS
- 5.6 Chrome handless
5.1 Selenium_基本使用
在pyCharm中安装selenium,下载chromedriver.exe,需要与谷歌浏览器的版本对应,解压后将chromedriver.exe和代码放在同一目录下。
5.2 Selenium_元素定位
1.find_element_by_id:通过id标签值定位页面元素
2.find_element_by_name:通过name标签值定位元素
3.find_element_by_xpath:通过xpath语句来获取对象
4.find_elements_by_tag_name:通过标签名定位页面元素
5.find_element_by_css_selector:使用的bs4的语法来获取对象
6.find_element_by_link_text:使用链接文本定位,即a标签的内容
其中1、3、5用的最多
from selenium import webdriver
path = "chromedriver.exe"
browser = webdriver.Chrome(path)
url = "https://www.baidu"
# 获取页面内容
browser.get(url)
# 根据id来找到对象 元素定位
# button = browser.find_element_by_id('su')
# print(button)
# 通过name标签值定位元素
# button = browser.find_element_by_name('wd')
# print(button)
# 通过xpath语句来获取对象
# button = browser.find_element_by_xpath("//input[@id='su']")
# print(button)
# 根据标签的名字来获取对象
# button = browser.find_elements_by_tag_name('input')
# print(button)
# 使用的bs4的语法来获取对象
# button = browser.find_element_by_css_selector("#su")
# print(button)
# 使用链接文本定位,即a标签的内容
button =browser.find_element_by_link_text('地图')
print(button)
5.3 selenium_元素信息及其交互
获取标签的属性
.get_attribute(‘class’)
获取标签的名字
.tag_name
获取元素文本
.text
from selenium import webdriver
path = "chromedriver.exe"
browser = webdriver.Chrome(path)
url = "https://www.baidu"
# 获取页面内容
browser.get(url)
input = browser.find_element_by_id('su')
# 获取标签的属性
print(input.get_attribute('class'))
# 获取标签的名字
print(input.tag_name)
# 获取元素文本
a = browser.find_element_by_link_text('地图')
print(a.text)
5.4 selenium_交互
from selenium import webdriver
import time
# 创建浏览器对象
path = "chromedriver.exe"
browser = webdriver.Chrome(path)
url = "https://www.baidu"
# 获取页面内容
browser.get(url)
time.sleep(2)
# 获取文本框的对象
input = browser.find_element_by_id('kw')
# 在文本框中输入周杰伦
input.send_keys("周杰伦")
time.sleep(2)
# 获取百度一下的按钮
button = browser.find_element_by_id('su')
# 点击按钮
button.click()
time.sleep(2)
# 滑到底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
time.sleep(2)
#获取下一页的按钮
next = browser.find_element_by_xpath("//a[@class='n']")
# 点击下一页
next.click()
time.sleep(2)
# 回到上一页
browser.back()
time.sleep(2)
# 回去
browser.forward()
time.sleep(2)
# 退出
browser.quit()
5.5 PhantomJS
1.什么是PhamtomJS?
(1)是一个无界面的浏览器
(2)支持页面元素查找,js的执行等
(3)由于不进行css和gui渲染,运行效率要比真实的浏览器要快很多
2.使用PhantomJS的方法和使用selenium类似
3.已经停更,推荐使用headless
from selenium import webdriver
import time
path = "phantomjs.exe"
browser = webdriver.PhantomJS(path)
url = "https://www.baidu"
# 获取页面内容
browser.get(url)
# 生成当前页面快照并保存
# browser.save_screenshot("bd.png")
time.sleep(2)
input = browser.find_element_by_id("kw")
input.send_keys('中国')
time.sleep(3)
browser.save_screenshot('zg.png')
5.6 Chrome handless
Chrome-handless模式,Google针对Chrome浏览器59版新增加的一种模式,可以让你在不打开UI界面的情况下使用Chrome浏览器,所有运行效果与Chrome保持完美一致。
#handless的配置项
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# path是你自己的chrome浏览器的文件路径
path = "C:\Program Files\Google\Chrome\Application\Chrome.exe"
chrome_options.binary_location = path
brower = webdriver.Chrome(chrome_options=chrome_options)
# 封装的handless
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
def share_browser():
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# path是你自己的chrome浏览器的文件路径
path = "C:\Program Files\Google\Chrome\Application\Chrome.exe"
chrome_options.binary_location = path
brower = webdriver.Chrome(chrome_options=chrome_options)
return brower
browser = share_browser()
url = "https://www.baidu"
browser.get(url)
browser.save_screenshot('bd2.png')
版权声明:本文标题:python爬虫学习第五章 Selenium 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726435396h960117.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论