下面是详细的讲解:
1. 确认环境
首先需要确认本地已经安装好了 Python 环境和 Chrome 浏览器。如果没有安装,可以参考 Python 官方网站 和 Chrome 官方网站 进行下载和安装。确认安装后,可以在命令行输入 python
和 chrome
来检查是否已经正确安装。
2. 安装 Selenium
Selenium 是用于自动化测试的工具,可以使用 Python 进行控制。需要先安装它,可以通过以下命令进行安装:
pip install selenium
3. 下载 Chrome 驱动程序
Selenium 需要 Chrome 驱动程序才能控制 Chrome 浏览器。可以前往 ChromeDriver 官方网站 下载对应版本的 Chrome 驱动程序。下载好后解压,将可执行文件所在路径加入系统环境变量中。
例如我将解压的文件夹路径为:C:\chromedriver\
,则需要将 C:\chromedriver\
添加至环境变量 PATH 中。
4. 编写 Python 代码
接下来需要编写 Python 代码,使用 Selenium 控制 Chrome 浏览器。在代码中可以根据需求配置 Chrome 浏览器的选项,常用的选项包括:
- 修改 User-Agent,模拟不同的浏览器;
- 设置代理,可以使用第三方代理服务;
- 禁止图片加载和 JavaScript 执行;
- 修改浏览器窗口大小等。
以下是一个简单的示例代码,在 Chrome 中打开百度并搜索关键词:
from selenium import webdriver
# 创建 ChromeOptions 对象
options = webdriver.ChromeOptions()
# 设置 User-Agent
options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3')
# 设置禁止加载图片
options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2})
# 创建 Chrome 浏览器对象
browser = webdriver.Chrome(options=options)
# 访问百度首页
browser.get("https://www.baidu.com")
# 找到搜索框元素并输入关键词
input = browser.find_element_by_id('kw')
input.send_keys('Python')
# 找到搜索按钮元素并点击
submit = browser.find_element_by_id('su')
submit.click()
# 关闭浏览器
browser.quit()
5. 应用场景示例
- 爬取豆瓣电影的 Top250 列表,并将数据保存至本地文件中。
import csv
from selenium import webdriver
# 创建 ChromeOptions 对象
options = webdriver.ChromeOptions()
# 禁止图片加载和 JavaScript 执行
options.add_argument('--disable-extensions')
options.add_argument('--disable-javascript')
options.add_argument('--disable-gpu')
options.add_argument('--disable-infobars')
options.add_argument('--start-maximized')
# 创建 Chrome 浏览器对象
browser = webdriver.Chrome(options=options)
# 访问豆瓣电影 Top250 首页
browser.get("https://movie.douban.com/top250")
# 找到“下一页”按钮,并循环点击
for i in range(10):
# 获取电影列表
items = browser.find_elements_by_css_selector('.item')
# 遍历电影列表,提取数据
for item in items:
# 获取电影标题和评分
title = item.find_element_by_css_selector('.title').text
rating = item.find_element_by_css_selector('.rating_num').text
# 将数据保存至本地文件中
with open('douban_movies.csv', mode='a', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow([title, rating])
# 找到“下一页”按钮,如果是最后一页则退出循环
next_button = browser.find_element_by_css_selector('.next')
if 'disable' in next_button.get_attribute('class'):
break
next_button.click()
# 关闭浏览器
browser.quit()
- 登录微博并发布一条微博。
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
# 创建 ChromeOptions 对象
options = webdriver.ChromeOptions()
# 创建 Chrome 浏览器对象
browser = webdriver.Chrome(options=options)
# 访问微博登录页
browser.get("https://passport.weibo.cn/signin/login")
# 输入用户名和密码
username = 'Your Username'
password = 'Your Password'
input_name = browser.find_element_by_id('loginName')
input_pwd = browser.find_element_by_id('loginPassword')
input_name.send_keys(username)
input_pwd.send_keys(password)
# 点击登录按钮
submit = browser.find_element_by_id('loginAction')
submit.click()
# 等待页面加载完成
time.sleep(5)
# 关闭弹窗
try:
close_button = browser.find_element_by_css_selector('.lite-iconf.lite-iconf-close')
close_button.click()
except:
pass
# 打开写微博页面
url = 'https://m.weibo.cn/compose/'
browser.get(url)
# 找到微博编辑框,输入文字
textarea = browser.find_element_by_css_selector('.m-textarea')
textarea.send_keys('Hello, world!')
# 等待编辑框变成可编辑状态
time.sleep(1)
textarea.send_keys(Keys.ENTER)
# 等待上传图片并完成
time.sleep(10)
# 点击发布按钮
submit_button = browser.find_element_by_css_selector('.btn-send')
submit_button.click()
# 关闭浏览器
browser.quit()
以上就是使用 Selenium 和 Python 配置 Chrome 浏览器选项的实现攻略。可以参考自己的需求进行相应的配置。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:selenium+python配置chrome浏览器的选项的实现 - Python技术站