Python爬虫之Selenium库的使用方法

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在列表,字典,集合中根据条件筛选数据

    我会为你详细讲解Python在列表、字典、集合中根据条件筛选数据的方法。 列表中筛选数据 在Python列表中,可以使用列表解析式,通过条件判断筛选数据。列表解析式的语法如下: [expression for item in iterable if condition] 其中,expression 为表达式,item 为可迭代对象的元素,iterable 为…

    python-answer 2023年3月25日
    00
  • Python爬虫实践 —— 3.利用爬虫提取返回值,模拟有道词典接口

    有道词典的web接口,实际上可以用爬虫模拟,输入key,拼接为有道词典接口的formdata,爬取返回值,实际为Ajax动态生成的translation,这样外部来看实现了翻译接口的模拟,相当于爬虫模拟浏览器调用了有道词典web接口,其实讲真的话来说,直接调用有道web接口,传json参数就可以了,不用这么费事,但爬虫模拟了人登陆web,输入关键词,获得翻译…

    爬虫 2023年4月10日
    00
  • 用Python计算三角函数之acos()方法的使用

    当我们需要计算三角函数时,acos()方法是非常有用的。acos()方法是Python 的标准数学库中的一部分,它可以计算给定角度的反余弦值,返回值范围是0-π。 以下是使用acos()方法计算三角函数的完整攻略: 1.引入math模块 首先,在使用acos()方法之前,需要引入Python的标准数学库 – math。代码如下所示: import math …

    python 2023年6月3日
    00
  • 全网首秀之Pycharm十大实用技巧(推荐)

    Pycharm十大实用技巧 Pycharm是Python爱好者或程序员应该非常熟悉的一款IDE,它功能强大、易于使用,是Python编程的首选工具之一。在本文中,我们将分享十个Pycharm的实用技巧,希望能够帮助读者更加高效地使用Pycharm。 1. 使用代码自动补全 代码自动补全是Pycharm最常用的功能之一。当你敲击代码时,Pycharm会自动展示…

    python 2023年5月18日
    00
  • Python字典操作简明总结

    Python中字典是常用的数据结构之一,非常有用。但在使用字典时,需要注意字典的创建、遍历、获取、修改、删除等基本操作。本篇文档将提供一份Python字典操作的简明总结,帮助大家更好地理解和使用字典。 一、创建字典 在Python中,可以通过“键值对”的方式创建字典。示例代码如下: # 创建空字典 empty_dict = {} # 创建包含键值对的字典 d…

    python 2023年5月13日
    00
  • python 淘宝爬虫小实例

    Python 淘宝爬虫小实例 简介 这是一个使用Python编写的淘宝爬虫,可以帮助我们获取淘宝中任意商品的价格、销量、收入等信息。 准备工作 使用Python编写爬虫需要安装requests库和BeautifulSoup库。可以使用以下命令进行安装: pip install requests pip install beautifulsoup4 爬取数据 …

    python 2023年5月14日
    00
  • Junos_config 不再适用于 ansible 2.5 python jsonDecoderError

    【问题标题】:Junos_config not working anymore with ansible 2.5 python jsonDecoderErrorJunos_config 不再适用于 ansible 2.5 python jsonDecoderError 【发布时间】:2023-04-07 20:18:01 【问题描述】: 自从我们从 ansi…

    Python开发 2023年4月8日
    00
  • python使用BeautifulSoup分析网页信息的方法

    Python使用BeautifulSoup分析网页信息的方法 本文将介绍如何使用Python的BeautifulSoup库分析网页信息。我们将使用BeautifulSoup库解析HTML文档,并使用find()和find_all()方法查找元素。 解析HTML文档 以下是一个示例代码,演示如何使用Python的BeautifulSoup库解析HTML文档: …

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