selenium安装与使用——爬虫(selenium测试框架)

1、安装selenium:

2、下载浏览器驱动并放在python环境中(此处为火狐浏览器)

                

            

selenium测试框架在爬虫中的应用


     网页中通过js渲染的数据,爬虫的解决办法:

    1. 去静态源码中查找<script>var infolist = {'name':'123', }</script>

    2. 抓包或者网络请求中,查看是否有类似与json的get请求,直接请求这个json的API拿到数据

    3. 使用phantomjs/selenium进行访问动态页面,而静态页面仍然使用requests进行获取

     selenium框架元素定位的方法:
     selenium框架本身提供了许多元素定位的方法,find_element_by_id()这些方法底层是用python语言实现的,提取速度上会慢一些。通常情况下,使用phantomjs/selenium也只是获取js渲染后的网页源代码,而网页中数据的提取,还可以使用xpath, css, re, bs4, etree等。


selenium框架的元素定位
geckodriver.exe: 是selenium用来打开火狐浏览器的驱动。需要将它和python.exe放在一起。
chromedriver.exe: 是谷歌的

# 注意:不兼容会出现启动错误
# 1. geckodriver.exe的版本必须和火狐浏览器的版本兼容;

# 2. geckodriver.exe的版本必须和当前操作系统兼容


import time
from selenium import webdriver
from selenium.webdriver.common.by import By

# 创建一个浏览器对象,会打开一个浏览器窗口
driver = webdriver.Firefox()

 #谷歌浏览器: driver = webdriver.Chrome()

#打开浏览器窗口(百度)
driver.get('https://www.baidu.com')

#定位到输入框
kw = driver.find_element(by=By.CSS_SELECTOR, value="#kw")
#输入框输入内容
kw.send_keys('selenium')


# 通过id定位到输入框
# keyword = driver.find_element_by_id('kw')
# # <class 'selenium.webdriver.firefox.webelement.FirefoxWebElement'>
# print(type(keyword))


# # 在向输入框中输入内容之前,可以先将之前的旧内容清空
# keyword.clear()


# # 向输入框中输入内容send_keys
# keyword.send_keys('selenium')


# 通过class定位到搜索按钮
# search_btn = driver.find_element_by_class_name('s_btn')


#点击search_btn
# search_btn.click()


# time.sleep(3)

#通过CSS定位并点击
# driver.find_element_by_css_selector('.result > h3 > a').click()

# 通过一个连接标签的文本内容定位标签
# driver.find_element_by_link_text('贴吧')

#通过xpath定位
# driver.find_element_by_xpath('')

# 批量获取元素elements获取单个元素element
# res = driver.find_elements_by_css_selector('.result')
# res = driver.find_elements(by=By.CSS_SELECTOR, value='.result')


# 获取js渲染后的网页源代码(网页源码:page_source)
print(driver.page_source)

# 休眠3秒,将浏览器driver对象退出
time.sleep(3)
driver.close()


猜你喜欢

转载自blog.csdn.net/qq_33472765/article/details/80741802