📜  硒缩小python(1)

📅  最后修改于: 2023-12-03 14:56:30.687000             🧑  作者: Mango

硒缩小Python

什么是硒?

硒(Selenium)是一种自动化测试工具,用于模拟用户对网站或Web应用程序的操作,支持多种编程语言和操作系统。

为什么要使用硒?

硒可用于自动化测试,可节省开发人员的时间和精力。它还可以模拟用户对Web应用程序的操作,可用于Web爬虫和数据挖掘等方面。

如何使用硒缩小Python?
from selenium import webdriver

# 创建chrome浏览器实例
browser = webdriver.Chrome()

# 获取百度首页
browser.get('https://www.baidu.com')

# 在搜索框中输入关键词
search_box = browser.find_element_by_id('kw')
search_box.send_keys('Python')

# 点击搜索按钮
search_button = browser.find_element_by_id('su')
search_button.click()

# 关闭浏览器
browser.quit()

以上代码展示了如何使用硒在Chrome浏览器中搜索“Python”。其中,webdriver模块提供了各种浏览器的实例创建工具;find_element_by_id方法根据元素的id属性查找元素;send_keys方法输入文本;click方法模拟点击操作;quit方法关闭浏览器实例。

其他使用硒的示例
例1:模拟登录QQ邮箱
from selenium import webdriver
import time

# 创建chrome浏览器实例
browser = webdriver.Chrome()

# 访问QQ邮箱登录页面
browser.get('https://mail.qq.com/cgi-bin/loginpage')

# 点击“帐号密码登录”选项卡
tab_pwd = browser.find_element_by_id('switcher_plogin')
tab_pwd.click()

# 输入用户名和密码
username_box = browser.find_element_by_id('u')
username_box.send_keys('your_QQ_email_address')
password_box = browser.find_element_by_id('p')
password_box.send_keys('your_password')

# 点击“登录”按钮
login_button = browser.find_element_by_id('login_button')
login_button.click()

# 等待页面跳转
time.sleep(5)

# 关闭浏览器
browser.quit()
例2:爬取淘宝商品信息
from selenium import webdriver
import time

# 创建chrome浏览器实例
browser = webdriver.Chrome()

# 访问淘宝首页
browser.get('https://www.taobao.com')

# 输入搜索关键词
search_box = browser.find_element_by_name('q')
search_box.send_keys('Python书籍')

# 点击搜索按钮
search_button = browser.find_element_by_class_name('btn-search')
search_button.click()

# 模拟滚动页面
for i in range(3):
    browser.execute_script('window.scrollBy(0, 1000)')
    time.sleep(1)

# 获取商品信息
items = browser.find_elements_by_class_name('item')
for item in items:
    title_box = item.find_element_by_class_name('title')
    price_box = item.find_element_by_class_name('price')
    print(title_box.text, price_box.text)

# 关闭浏览器
browser.quit()

以上代码展示了如何使用硒爬取淘宝上的Python书籍信息。其中,find_element_by_namefind_element_by_class_name方法根据元素的nameclass属性查找元素;execute_script方法可以执行JavaScript代码,用于模拟页面的滚动操作。