Python操控Chrome浏览器进行网页操作

要用Python操控Chrome浏览器进行网页操作,首先需要安装selenium库,可以通过以下命令进行安装:

pip install selenium

安装完毕后,按照以下步骤进行操作:

1. 导入库和设置浏览器

from selenium import webdriver

# 设置 Chrome 选项
chrome_options = webdriver.ChromeOptions()

# 使用无头模式(不打开浏览器窗口)
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')

# 创建一个 Chrome 浏览器实例
browser = webdriver.Chrome(chrome_options=chrome_options)

2. 打开网页

url = 'https://www.baidu.com'
browser.get(url)

3. 定位元素

定位元素是进行网页操作的重要步骤,selenium支持多种元素定位方式:

以定位百度搜索框并输入内容为例:

# 定位输入框并输入内容
search_box = browser.find_element_by_id('kw')
search_box.send_keys('Python')

# 提交表单
search_box.submit()

4. 等待元素出现

由于网页加载速度和网络环境的影响,在进行元素定位时,需要等待元素加载完成后再进行后续操作。可以使用 selenium.webdriver.support.ui.WebDriverWait 类实现等待。

等待页面加载完成的示例:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待10秒,直到页面标题中出现某个关键字
wait = WebDriverWait(browser, 10)
wait.until(EC.title_contains('Python'))

5. 获取元素属性和内容

获取元素属性和内容是进行网页操作的常用操作,可以使用 get_attribute()text 属性获取。

获取搜索结果中第一条结果的链接地址和标题为例:

# 获取第一条搜索结果的链接地址和标题
result = browser.find_element_by_xpath('//div[@class="result c-container new-pmd"]/h3/a')
link = result.get_attribute('href')
title = result.text

6. 关闭浏览器

浏览器操作完成后,需要关闭浏览器:

browser.quit()

以上就是使用Python操控Chrome浏览器进行网页操作的完整攻略。下面是两个示例说明:

示例1:获取百度搜索关键字的搜索结果数量

from selenium import webdriver

# 设置 Chrome 选项
chrome_options = webdriver.ChromeOptions()

# 使用无头模式(不打开浏览器窗口)
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')

# 创建一个 Chrome 浏览器实例
browser = webdriver.Chrome(chrome_options=chrome_options)

# 打开百度首页
url = 'https://www.baidu.com'
browser.get(url)

# 输入搜索关键字
search_box = browser.find_element_by_id('kw')
search_box.send_keys('Python')

# 提交表单
search_box.submit()

# 等待页面加载完成
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(browser, 10)
wait.until(EC.title_contains('Python'))

# 获取搜索结果数量
result = browser.find_element_by_xpath('//*[@id="container"]/div[2]/div/div[1]/div[3]/div[1]/span[1]')
count = result.text.strip()
print(f'搜索结果共 {count} 条')

# 关闭浏览器
browser.quit()

示例2:抓取豆瓣电影TOP250的电影信息

from selenium import webdriver

# 设置 Chrome 选项
chrome_options = webdriver.ChromeOptions()

# 使用无头模式(不打开浏览器窗口)
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')

# 创建一个 Chrome 浏览器实例
browser = webdriver.Chrome(chrome_options=chrome_options)

# 打开豆瓣电影 TOP250 页面
url = 'https://movie.douban.com/top250'
browser.get(url)

# 定位电影列表并依次抓取数据
movies = browser.find_elements_by_xpath('//*[@id="content"]/div/div[1]/ol/li')
for movie in movies:
    # 电影名称
    name = movie.find_element_by_xpath('.//span[@class="title"][1]')
    name = name.text

    # 导演、演员、类型
    info = movie.find_element_by_xpath('.//div[@class="bd"]/p[1]')
    info = info.text.split('\n')
    director = info[0].split(':')[1].strip()
    actors = info[1].split(':')[1].strip()
    genre = info[2].strip()

    # 评分
    rate = movie.find_element_by_xpath('.//span[@class="rating_num"]')
    rate = rate.text

    # 输出信息
    print(f'{name}\t{director}\t{actors}\t{genre}\t{rate}')

# 关闭浏览器
browser.quit()

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python操控Chrome浏览器进行网页操作 - Python技术站

(1)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • office的visio怎么打开

    如何在电脑上打开Office Visio Office Visio是微软公司推出的一款专业的流程图绘制工具,它提供了丰富多样的图形符号,并且具有强大的功能。很多人想要用这个软件,但是不知道该如何打开。下面我们来介绍一下如何在电脑上打开Office Visio。 安装Office Visio 首先,你需要安装Office Visio软件。如果你已经安装了Off…

    其他 2023年3月28日
    00
  • 钉钉开发笔记(3)MySQL的配置

    钉钉开发笔记(3)MySQL的配置 在钉钉开发中,MySQL是一个常用的数据库,本文将为您提供一份完整攻略,介绍如何配置MySQL,包括概念介绍、示例说明等。 概念介绍 MySQL是一个开源的关系型数据库管理系统,它支持多种操作系统,包括Windows、Linux、macOS等。在钉钉开发中,MySQL可以用于存储和管理数据。 示例说明 以下是两个MySQL…

    other 2023年5月5日
    00
  • Vue浅析axios二次封装与节流及防抖的实现

    一、Vue浅析axios二次封装 axios介绍Axios是一个基于Promise的HTTP库,用于ajax请求。它在浏览器和Node环境中均可使用,并支持拦截器、请求与响应的取消、自动转换JSON数据、客户端防止CSRF等常见功能。 Vue中使用axios的步骤 Vue中使用axios需要先导入axios库,然后在Vue实例中进行配置即可。常见的配置包括:…

    other 2023年6月25日
    00
  • JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】

    当然!下面是关于\”JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】\”的完整攻略: JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】 在JAVA中,可以使用随机数生成器和字符集来实现随机生成指定长度的密码。以下是两个示例: 示例1:生成指定长度的密码 import java.util.Random; public class P…

    other 2023年8月19日
    00
  • android6.0运行时权限完美封装方法

    为了在Android 6.0及以上版本上获得一些敏感权限,如读取设备存储器、拍照、录音等,需要使用运行时权限。本文将介绍如何完美封装运行时权限,使其在应用中更加方便快捷。 1. 权限获取流程 首先,我们需要确定权限获取的流程: 先判断权限是否已经被授予: 如果有授予了,直接执行后续操作。 如果没有授予,执行下一步。 弹出权限请求框,请求用户授权。 用户授权或…

    other 2023年6月25日
    00
  • CentOS 7中 Apache Web 服务器安装配置教程

    以下是“CentOS 7中 Apache Web 服务器安装配置教程”的完整攻略: 1. 安装Apache Web服务器 在CentOS 7中安装Apache Web服务器非常简单,只需要在终端输入如下命令: sudo yum install httpd 这条命令会自动安装Apache Web服务器和所有必要的依赖项。 2. 启动Apache Web服务器 …

    other 2023年6月25日
    00
  • Python asyncore socket客户端开发基本使用教程

    Python asyncore socket客户端开发基本使用教程 什么是asyncore库 asyncore是Python中的标准库。它是处理异步socket代码的一个模块。asyncore模块必须与Python标准库中的socket模块一起使用,它提供了一种基于事件循环的方法来处理异步I/O操作。 asyncore库的使用方法 以下是使用asyncore…

    other 2023年6月27日
    00
  • 一、tcga和gdc简介

    下面是关于“一、tcga和gdc简介”的完整攻略: 1. TCGA和GDC简介 TCGA(The Cancer Genome Atlas)是一个由国国立癌症研究所(NCI)和国立人类基因组研究所(NHGRI)共同发起癌症基因组计划,旨在通过对多种癌症类型的基因组学研究,揭示癌症的发生机制和治疗。GDC(Genomic Data Commons)是TCGA的继…

    other 2023年5月7日
    00
合作推广
合作推广
分享本页
返回顶部