网站在线发布网站外链,友情链接,网站收录,APP推荐

友情链接互换买卖平台

#Python新征程31#操控网页打开,selenium4爬取百度搜索数据

后台-系统设置-扩展变量-手机广告位-内容广告位一

接触到了selenium板块,涉及到网页浏览器驱动的问题。电脑软件平时升级比较快,我的chrome浏览器已经到了最新版本116.0.5845.32(正式版本)dev (64 位),但是chrome官方发布的驱动只更新到114.0.5735.90。尝试下载最新的114版本的驱动,放到python之下,运行起来直接提示版本不正确。过去的几天一直在等待驱动版本的更新,无果没辙之后只有卸载了我的高版本chrome,安装回低版本的chrome,开始接下来重点内容的学习。

tupian

浏览器对了,驱动对了,测试就很顺利流畅的进行下来,痛快!

通过chrome浏览器,在Pycharm模拟环境下,selenium测试使用的代码如下

'''selenium测试使用'''from selenium import webdriverimport timewb=webdriver.Chrome()wb.get('http://www.baidu.com')time.sleep(60)wb.close()

解释下代码,以备我后面可能会忘掉。在selenium中引入网页驱动,引入演示器;打开chrome浏览器,获取百度网页,停留60s之后关闭网页。很容易理解的一段代码,从上至下逻辑思路很简明的一段代码。

在运行的过程中,chrome浏览器打开的百度页面左上角会有个测试环境的提示,告诉我们chrome浏览器正受到自动测试软件的控制。

tupian

继续参考教材中的案例来学习。

这里依然会有个selenium版本迭代更新的问题,先看代码,再来解释。具体代码如下:

'''使用selenium爬取实例-爬取百度搜索结果'''from selenium import webdriverfrom selenium.webdriver.common.by import Byimport timechrome=webdriver.Chrome()chrome.maximize_window()chrome.implicitly_wait(3)url='http://www.baidu.com'chrome.get(url)element_kw=chrome.find_element(By.ID, 'kw').send_keys('diamond')chrome.find_element(By.ID, 'su').click()result=chrome.find_element(By.ID, '1')print(result.text)chrome.quit()

解释下代码的含义:

1、引入selenium和网页驱动

2、在selenium中引入By关键字

3、引入时间延迟

4、通过网页驱动打开Chrome浏览器并最大化,延迟3秒钟之后打开百度网页

5、在搜索栏中输入关键字diamond,点击搜索按钮

6、以文本方式输出查找到的第一个结果

7、关闭浏览器。

tupian

注意几个非常大的变化

1、代码格式的变化。教材出版在2021年,两年的时间selenium已经从selenium3升级到了selenium4,所以find_element_by_id这种代码已经过时无法使用,需要按照selenium4代码规则编写,即find_element(By.ID,’value’)

2、By关键词需要在一开始就要引入,否则会提示关键词未被定义

对于我这个新人来说,通过接近3个小时的时间发现了核心问题所在,查找到正确的解决方法,还是非常有自豪感的。

#加油!

#一点一滴的努力,未来都会有回报。

#岁月静好,不去羡慕旁人,只做好自己,花朵总会绽放。

#以上学习感悟来自于《网络爬虫进化论:从Excel爬虫到Python爬虫》(中国水利水电出版社2021年出版)

后台-系统设置-扩展变量-手机广告位-内容广告位二

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Top