声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。
Selenium
库是一个强大的Web自动化工具,允许开发者通过编写脚本来控制浏览器,实现网页的自动测试和数据抓取。它提供了WebDriver
接口,支持多种浏览器,如Chrome、Firefox等。使用Selenium,可以模拟用户行为,如点击、输入、导航等,适用于自动化测试、爬虫开发等多种场景。
Selenium库提供了丰富的方法来模拟用户与浏览器的交互。以下是一些常用的Selenium WebDriver方法的介绍:
初始化WebDriver:
webdriver.BrowserName()
: 创建一个特定浏览器的WebDriver实例。导航:
get(url)
: 加载指定的URL。back()
: 后退到浏览器历史记录中的上一个页面。forward()
: 前进到浏览器历史记录中的下一个页面。refresh()
: 刷新当前页面。元素定位:
find_element(By.定位方式, 值)
: 查找页面上第一个匹配的元素。find_elements(By.定位方式, 值)
: 查找页面上所有匹配的元素。元素交互:
click()
: 点击元素。clear()
: 清除输入字段的内容。send_keys(*value)
: 向输入字段发送键序列。submit()
: 提交表单。获取元素信息:
get_attribute(name)
: 获取元素的属性值。text
: 获取元素的文本内容。tag_name
: 获取元素的标签名。is_displayed()
: 检查元素是否可见。is_enabled()
: 检查元素是否启用。等待:
implicitly_wait(seconds)
: 设置隐式等待时间,用于等待页面元素加载。WebDriverWait(driver, timeout).until(condition)
: 显式等待,直到某个条件成立。窗口和框架:
switch_to.window(name)
: 切换到指定名称的窗口。switch_to.frame(element)
: 切换到指定的iframe。执行JavaScript:
execute_script(script)
: 在当前页面执行JavaScript代码。浏览器操作:
close()
: 关闭当前窗口。quit()
: 关闭所有窗口并结束WebDriver会话。截图:
get_screenshot_as_file(filename)
: 将当前页面截图保存为文件。get_screenshot_as_png()
: 获取当前页面的截图数据。Cookies操作:
add_cookie(cookie_dict)
: 添加一个cookie。delete_cookie(name)
: 删除指定名称的cookie。delete_all_cookies()
: 删除所有cookies。浏览器设置:
set_page_load_timeout(time_to_wait)
: 设置页面加载超时时间。set_script_timeout(time_to_wait)
: 设置脚本执行超时时间。这些方法覆盖了从浏览器启动、页面导航、元素交互到浏览器关闭的整个流程,为自动化测试和网页自动化提供了强大的支持。
pip install selenium
。edge://version/
MicrosoftWebDriver.exe
抓取并展示指定网页上的所有链接信息
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Edge()
# 打开目标网页
driver.get('https://movie.douban.com/top250')
# 获取网页上所有的链接元素
links = driver.find_elements(By.TAG_NAME, 'a')
# 遍历链接,打印链接的文本和href属性
for link in links:
print(f"链接文本: {link.text}")
print(f"链接地址: {link.get_attribute('href')}\n")
# 关闭浏览器
driver.quit()
抓取到了全部链接。
浮萍漂泊本无根,天涯游子君莫问。