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日

相关文章

  • python-根据url地址下载文件

    Python根据URL地址下载文件的完整攻略 本文将提供一份关于Python根据URL地址下载文件的完整攻略,包括定义、实现步骤、示例以及注意事项。 定义 Python根据URL地址下载文件是指通过Python程序,从指定的URL地址下载文件本地计算机。 实现步骤 以下是Python根据URL地址下载文件的步骤: 导入必要的库 在Python程序中,需要导入…

    other 2023年5月9日
    00
  • 后缀名为.vsd文件怎么打开 vsd是什么文件

    后缀名为.vsd的文件是Microsoft Visio的文件格式,Visio是一款流程图和矢量图绘制工具。要打开.vsd文件,可以按照以下步骤进行操作: 使用Microsoft Visio打开文件:最简单的方法是使用Microsoft Visio软件本身来打开.vsd文件。如果你已经安装了Visio,可以直接双击文件或者在Visio中选择“文件”菜单,然后点…

    other 2023年8月5日
    00
  • Linux下获取公网IP地址的方法

    Linux下获取公网IP地址的方法 在Linux系统中,有多种方法可以获取公网IP地址。下面是两种常用的方法示例: 方法一:使用curl命令获取公网IP地址 打开终端,输入以下命令安装curl工具(如果已经安装则可以跳过此步骤): shell sudo apt-get install curl 在终端中输入以下命令获取公网IP地址: shell curl i…

    other 2023年7月30日
    00
  • C++ 前置声明详解及实例

    C++ 前置声明详解及实例 什么是前置声明 前置声明是指在使用某个类型之前先声明该类型的存在,而不需要提供该类型的具体定义。在 C++ 中,有些情况下需要用到某个类型,但是该类型的定义可能在其使用之后才会出现,这时候就需要使用前置声明。 常见的需要使用前置声明的情况包括当类型作为函数参数时,当类型成员被引用时等。如果不提供前置声明,编译器会在使用该类型之前报…

    other 2023年6月26日
    00
  • win2003分布式文件系统(dfs)配置方法[图文详解]

    Win2003 分布式文件系统(DFS)配置方法 DFS是分布式文件系统的缩写,它是微软提出的一种公用文件系统,可以通过不同的物理位置和不同的协议将文件映射到网络上的许多不同位置。同时,它通过名字空间机制,使多个服务器共享的文件目录树具有唯一的网络路径名。 下面我们详细介绍 Win2003 分布式文件系统(DFS)的配置方法。 步骤 1:安装分布式文件系统(…

    other 2023年6月27日
    00
  • VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例

    VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例 CHTRichEdit是VC++中的一个HTControl控件类,用于实现富文本编辑功能。下面是使用这个控件的详细攻略: 第一步:添加控件 在使用CHTRichEdit控件前,我们需要先将它添加到窗口中。具体操作如下: 在Resource View中找到想要添加控件的对话框或窗口,…

    other 2023年6月26日
    00
  • idea必备插件系列-keypromoterx(快捷键使用提示)

    当然,我很乐意为您提供有关“IntelliJ IDEA必备插件系列-KeyPromoterX(快捷键使用提示)”的完整攻略。以下是详细的步骤和两个示例: 1. 什么是KeyPromoterX? KeyPromoterX是一款IntelliJ IDEA插件,它可以帮助您学习和使用IntelliJ IDEA的快捷键。当您使用鼠标执行某些操作时,KeyPromot…

    other 2023年5月6日
    00
  • centos6.5的安装详解(图文详解)

    CentOS 6.5的安装详解(图文详解) CentOS是一款知名的开源Linux操作系统,本文将为您详细介绍在CentOS 6.5上进行安装的详细步骤,以及常见问题的解决方法。 准备工作 在进行CentOS 6.5的安装前,我们需要进行一些准备工作: 下载CentOS 6.5镜像文件,并将其写入到光盘或U盘中。 确认所需的硬件设备资源,并将其配置好,如:C…

    其他 2023年3月29日
    00
合作推广
合作推广
分享本页
返回顶部