『python爬虫』22. 初识自动化测试工具selenium(保姆级图文)


欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中

1. selenium的安装配置

需要下载对应你谷歌浏览器版本的驱动,详情可看我的博文

配置selenium库的浏览器驱动,解决selenium.common.exceptions.SessionNotCreatedException 报错(保姆级图文)


2. 为什么使用selenium?它的优势和缺点是什么?

  • selenium是⼀个⾃动化测试的⼯具,可以模拟真人启动一个浏览器访问网页,并从中提取到你想要的内容。
  • selenium的独特优点:真正模拟真人,有谷歌官方支持研发推动。随着各种⽹站的反爬机制的出现,比如我们之前遇到过的各种加密解密、各种请求响应,知道他加密的方法后爬虫不困难,但是如何研究出他的加密方式很困难。
  • selenium最⼤的缺点:慢。他要启动⼀个(浏览器),请求一些可能我们不需要的资源,(比如我们只要爬取文字,但是他本身也会顺带请求图片的信息)还要让浏览器把数据渲染后才开始爬虫,这大大增加了资源占用和消耗的时间。

3. selenium的基本使用

从一个驱动对象开始,寻找节点,进行各种操作。

  • web = Chrome() #创建一个selenium对象
  • web.get(“http://lagou.com”) #模拟浏览器打开一个网页
  • el = web.find_element_by_xpath(‘//*[@id=“changeCityBox”]/ul/li[1]/a’) #xpath的解析方式寻找元素节点
  • el.click() # 元素节点.click() 表示点击元素节点
  • web.find_element_by_xpath(‘//*[@id=“search_input”]’).send_keys(“python”, Keys.ENTER) #搜索栏输入关键词
  • 注意操作延时等待的问题,有固定等待时间/隐式等待/显式等待三种方法。

4. selenium实战之csdn搜索python博文

我的博客主页
https://blog.csdn.net/u011027547

4.1 点击选择文章

切换到文章的选项卡,这里就复制一下文章的xpath//*[@id="userSkin"]/div[2]/div/div[2]/div[1]/div[1]/ul/li[2]

在这里插入图片描述

注意点击后会有一个加载的时间,注意要留一点等待的时间,防止加载过慢,我们就进行下一步的操作。(细心的你也许会发现url变成了https://blog.csdn.net/u011027547?type=blog就是在原来的基础上增加了?type=blog其实切换到文章这种步骤如果没有防盗链限制访问来源refer的url的话,后期可以直接省略,url参数加上就行,这里是为了给大家演示点击的操作。)

4.2 搜索栏输入搜索关键词

在这里插入图片描述

csdn的搜索需要先点击一下搜TA的内容 xpath为//*[@id="userSkin"]/div[2]/div/div[2]/div[1]/div[1]/div/div[1]/span,然后才会激活搜索关键词输出进而搜索
在这里插入图片描述

得到搜索栏xpath //*[@id="mSearchInput"],节点使用 send_keys("python", Keys.ENTER)输入关键词后回车,等级搜索结束就可以爬取数据了

4.3 实现代码

因为搜索会打开一个新的窗口,这部分内容放在下一篇文章详细说明。本次代码截止到出现待爬取数据的页面

from selenium.webdriver import Chrome
from selenium.webdriver.common.keys import Keys

import time

from selenium.webdriver.support.wait import WebDriverWait

web = Chrome()#创建一个selenium对象

web.get("https://blog.csdn.net/u011027547")#模拟浏览器打开一个网页

# 最大化浏览器的窗口
# web.maximize_window()

# 找到某个元素. 点击文章选项卡
el = web.find_element_by_xpath('//*[@id="userSkin"]/div[2]/div/div[2]/div[1]/div[1]/ul/li[2]')#xpath的解析方式寻找元素节点
el.click()  # 元素节点.click() 表示点击元素节点

time.sleep(2)
# 让浏览器缓一会儿,注意这个时长一定要大于网页渲染的时间
# 否则可能我们点击后的网页新出现的节点没有出现,程序就继续执行下去了,找不到我们要点击的新节点

# 找到输入框. 输入python  =>  输入回车/点击搜索按钮
web.find_element_by_xpath('//*[@id="userSkin"]/div[2]/div/div[2]/div[1]/div[1]/div/div[1]/span').click()
time.sleep(2)
web.find_element_by_xpath('//*[@id="mSearchInput"]').send_keys("python", Keys.ENTER)

在这里插入图片描述

总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2023 mzh

Crated:2023-3-1

欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值