IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> selenium爬取笔记 -> 正文阅读

[开发测试]selenium爬取笔记

????????导入第三方库selenium。

import selenium
from selenium import webdriver

????????下载好对应的浏览器驱动:

??edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

? chrome:https://code.google.com/p/chromedriver/downloads/list

? firefox:https://github.com/mozilla/geckodriver/releases/

??IE:NuGet Gallery | Selenium.WebDriver.IEDriver 4.0.0

????????下载完是一个压缩文件夹,打开文件夹,里面有一个webmsedgedriver.exe文件,把这个文件复制到除C盘以外的一个盘里,然后再把该路径配置到此电脑的系统环境里去。

? ? ? ? 配置环境的路径为“此电脑—右击属性—关于—高级系统设置—高级—环境变量—系统变量—path

? ? ? ? 将msedgedriver.exe文件的路径配置进去,然后再点确定。

# 创建浏览器对象,我这里是edge浏览器,如果是你们是用的chrome浏览器的话,这里的edge要改成chrome,firefox也是如此,首字母要大写!!
driver = webdriver.Edge()
driver.get('https://www.taobao.com/?spm=a21bo.jianhua.201857.1.5af911d9NTiGPH')
# 网页最大化
driver.maximize_window()

????????在这里运行一下,发现driver = webdriver.Edge()出现报错。

hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\learn\测试.py", line 4, in <module>
    driver = webdriver.Edge()
  File "D:\学习\pycharm 练习\learn\lib\site-packages\selenium\webdriver\edge\webdriver.py", line 62, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.EDGE['browserName'], "ms",
  File "D:\学习\pycharm 练习\learn\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 90, in __init__
    self.service.start()
  File "D:\学习\pycharm 练习\learn\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'msedgedriver' executable needs to be in PATH. Please download from https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

????????

????????这里说这个驱动需要在配置里,但是我一想我明明配置了路径,怎么还要配置呢,后来一查才知道,原来要把路径以对象的形式给到webdriver.Edge()这个方法里面去。

? ? ? ? 所以代码得改成这样。

#                        当然这里的edge也得改成自己的浏览器名称,小写就可以
from selenium.webdriver.edge.service import Service

# 用Service()方法将路径给到变量s,这里用了正则表达式
s = Service(r'D:\msedgedriver.exe')
# 这里的service是Edge方法里的参数,具体用法可以用鼠标选中Edge,然后按住ctrl,再用鼠标左键点击,就会弹出相应的方法文件
driver = webdriver.Edge(service=s)
driver.get('https://www.taobao.com/?spm=a21bo.jianhua.201857.1.5af911d9NTiGPH')
# 网页最大化
driver.maximize_window()

????????然后再来运行代码,就会弹出淘宝网页,这里有个重点,代码和人来浏览网页的时候会出现不同情况:

? ? ? ? 1、如果是人来逛网页的话,在搜索里搜索,选中物品,一直到最后确定购买后,才会弹出登录用户账户的界面弹窗;

? ? ? ? 2、如果是代码去操控驱动执行浏览网页,则会再搜索栏里输入设定好的商品后,直接弹出登陆界面的弹窗。

? ? ? ? 我们先写好要搜索的内容代码。

? ? ? ? 这里还有一个内容:

? ? ? ? 一般是用find_element_by_xpath()的方法去获取网页元素,结果我的pycharm却在底下显示

# 这里要换用方法,在上面加一个from selenium.webdriver.common.by import By


# 不推荐使用find_element_by_xpath(),请使用find_element()方法代替
find_element_by_* commands are deprecated. Please use find_element() instead 

# 也就是find_elemnet_by_xpath() == find_element(By.XAPTH, ‘要找的元素')

????????这里用了xpath方法去获取搜索框的网页元素,然后设置网页随机延迟1到3秒。

import random

driver.find_element(By.XPATH, '//*[@id="J_TSearchForm"]/div[1]/button').click()
time.sleep(random.randint(1, 3))

????????再获取搜索按钮,也是设定随机延迟1到3秒。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:54:14  更:2022-02-22 20:56:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:24:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码