Python爬虫之Selenium库的使用方法

yizhihongxing

Python爬虫之Selenium库的使用方法

Selenium概述

  • Selenium是一个自动化测试工具,可以模拟人的行为,比如点击,输入等。但是Selenium更常用的是用来做爬虫,尤其是一些需要登录或者需要执行JS代码的网站。
  • Selenium有多种语言支持,其中Python是最为常用。Python中,爬虫常用的Selenium库有selenium和selenium-wire。

Selenium环境安装

Selenium基本使用

  • 首先需要导入selenium库,from selenium import webdriver
  • 然后,需要创建一个浏览器对象,如browser = webdriver.Chrome()
  • 接下来,我们可以通过浏览器对象来访问网页。如browser.get("http://www.baidu.com")
  • 如果需要进行一些交互操作,如模拟输入和点击,可以通过浏览器对象下的方法来实现。如,模拟在百度搜索框输入Python:input = browser.find_element_by_id("kw")input.send_keys("Python")。然后,通过submit()方法来提交输入框中的内容,如:input.submit()
  • 最后,如果我们需要对浏览器截屏、控制窗口大小等操作,我们可以通过浏览器对象的方法来实现。如:截屏并保存为example.png:browser.save_screenshot('example.png')

Selenium高级用法

  • 如果需要处理一些需要使用JS代码的网站,可以通过execute_script()方法来在浏览器中执行JS代码。如,在页面底部进行滚动时,可以通过browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")来实现。
  • 如果需要模拟登录,在Selenium中,我们可以模拟用户登录行为,如输入用户名和密码,点击登录按钮等。如,模拟在微博登录页面输入账号和密码,并点击登录按钮:
username = browser.find_element_by_xpath('//*[@id="loginname"]')
password = browser.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input')
submit = browser.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a')
username.send_keys("username")
password.send_keys("password")
submit.click()
  • 如果需要在Selenium中使用代理,可以通过selenium-wire实现,代码如下:
from seleniumwire import webdriver  # 导入seleniumwire库中的webdriver模块


options = {
    'proxy': {
        'http': 'http://10.10.1.10:8888',  # http代理服务器地址
        'https': 'https://10.10.1.10:8888',  # https代理服务器地址
        'no_proxy': 'localhost,127.0.0.1'  # 不使用代理的地址
    }
}

# 打开带代理设置的Chrome浏览器
browser = webdriver.Chrome(seleniumwire_options=options)

示例说明

示例1:爬取百度热搜榜单

  • 代码如下:
from selenium import webdriver

# 创建浏览器对象,并访问百度热搜榜单
browser = webdriver.Chrome()
browser.get("https://www.baidu.com/s?tn=hotword&ref=top10")
# 找到热搜榜列表
hotList = browser.find_element_by_class_name("hot-list")
# 打印热搜榜列表中的每一项
for item in hotList.find_elements_by_tag_name("li"):
    print(item.text)
# 关闭浏览器
browser.quit()
  • 运行结果如下:
林丹妻子出轨
中央发文:加强小学思政课
冉高鸣病逝
周立波欲诉老胡
梅西对食物过敏
看守所炸狱警是“女鬼”
172人因天价酒泡汤屡屡嗑药被查
网曝张一山被APP封号
太子妃升职记
南京深夜发生“砍人事件”

示例2:使用selenium-wire实现爬取有代理的网站

  • 代码如下:
from seleniumwire import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 代理设置
options = {
    'proxy': {
        'http': 'http://192.168.1.100:8888',
        'no_proxy': 'localhost,127.0.0.1'
    }
}

# 创建带有代理设置的Chrome浏览器
browser = webdriver.Chrome(seleniumwire_options=options)
# 访问需要代理的网站
browser.get("https://www.whatismyip.com")
# 等待页面元素加载完成
WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "ipv4")))

# 获取IP地址信息
ipAddress = browser.find_element_by_id("ipv4").text
print("Your IP address: " + ipAddress)

# 关闭浏览器
browser.quit()
  • 运行结果如下:
Your IP address: 192.168.1.100

以上为Selenium库的使用方法详解,希望对您的学习和使用有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫之Selenium库的使用方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python在ubuntu中的几种安装方法(小结)

    下面给出Python在Ubuntu中几种安装方法的攻略: 概述 Python是Ubuntu中非常重要的一种编程语言,安装Python也是非常的重要,本篇文章将介绍在Ubuntu中Python的几种安装方法。 方法一:使用apt-get命令安装 在Ubuntu中,Python是自带的,但是如果想要使用最新的Python版本,可以使用apt-get命令来安装。 …

    python 2023年5月14日
    00
  • Python包中__init__.py文件的作用与用法实例详解

    Python包中__init__.py文件的作用与用法实例详解 介绍 Python中的包是一种组织Python模块的方法,通过将相关的模块放在同一个目录下并在该目录下创建__init__.py文件,从而将其打包成一个Python包。init.py文件所在的包将被Python解释器视为一个Python包。 文件内容 init.py文件是Python包中必须包含…

    python 2023年6月5日
    00
  • python用pip install时安装失败的一系列问题及解决方法

    Python用pip install时安装失败的一系列问题及解决方法 在Python编程中,我们经常会使用pip install命令来安装第三方库或模块。但是,有时候我们会遇到pip install安装失败的问题。本文将详细讲解Python用pip install时安装失败的一系列问题及解决方法,包括问题的原因、解决方法和两个示例。 问题原因 在Python…

    python 2023年5月13日
    00
  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    下面我将详细讲解Python基于Pymssql模块实现连接SQL Server的方法: 1. 下载和安装Pymssql模块 在Python环境下,我们需要用到Pymssql这个模块,所以,首先,需要先安装Pymssql: pip install pymssql 2. 连接SQL Server数据库 连接SQL Server数据库需要以下参数: 服务器地址(h…

    python 2023年5月31日
    00
  • Python:通配符查找、拷贝文件的操作

    在Python中,我们可以使用通配符来查找和拷贝文件。本文将详细介绍如何使用通配符在Python中查找和拷贝文件。 通配符查找文件 在Python中,我们可以使用glob模块来查找文件。glob模块提供了一个函数glob(),它接受一个通配符模式作为参数,并返回匹配该模式的所有文件的列表。 以下是一个示例: import glob files = glob.…

    python 2023年5月14日
    00
  • Python configparser模块常用方法解析

    Python configparser模块常用方法解析 configparser是Python标准库中的一个模块,用于读取和写入配置文件。本文将详细讲解configparser模块的常用方法,包括读取配置文件、写入配置文件、获取配置项、修改配置项等内容,并提供两个示例。 示例1:读取配置文件 以下是一个使用configparser读取配置文件的示例: imp…

    python 2023年5月15日
    00
  • Python密码学XOR算法编码流程及乘法密码教程

    标题:Python密码学XOR算法编码及乘法密码教程 XOR算法编码流程 1.输入明文和密钥。 2.将明文和密钥转化为二进制。 3.将明文和密钥按位异或。若明文和密钥同一位为0或1,则异或结果为0,否则为1。 4.将异或后的结果转化为十六进制,即为密文。 示例1: 明文:hello 密钥:world 1.明文和密钥转化为二进制为: hello:0110100…

    python 2023年5月31日
    00
  • 如何在Python中编写接口和请求外部接口

    在Python中编写接口和请求外部接口是非常常见的任务。本文将介绍如何在Python中编写接口和请求外部接口,并提供两个示例。 编写接口 在Python中编写接口可以使用Flask库。Flask是一个轻量级的Web应用程序框架,可以用于快速构建Web应用程序。以下是一个示例,演示如何使用Flask编写接口: from flask import Flask, …

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