0


python爬虫学习第五章 Selenium

第五章 Selenium的学习

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.com"# 获取页面内容
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.com"# 获取页面内容
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.com"# 获取页面内容
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.com"# 获取页面内容
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)
# 封装的handlessfrom selenium import webdriver
from selenium.webdriver.chrome.options import Options

defshare_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.com"
browser.get(url)

browser.save_screenshot('bd2.png')
标签: python 爬虫 学习

本文转载自: https://blog.csdn.net/m0_58905839/article/details/141824282
版权归原作者 小兔子要开心呀 所有, 如有侵权,请联系我们删除。

“python爬虫学习第五章 Selenium”的评论:

还没有评论