zl程序教程

您现在的位置是:首页 >  后端

当前栏目

爬虫学习(17):selenium学习

爬虫学习 selenium 17
2023-09-14 09:14:35 时间

川川已经很久没发文章了,为了锻炼出八块腹肌也是忍了,不说废话了,学了下selenium,我再发布总结下,还有如何用selenium制作一个自动填体温,emm…没办法,我学校天天都叫我们填体温,上午一次下午一次,烦死了。自动填体温代码由于透露到个人信息,我实在不方便透露了,大家可以里找我,再教你也可以,或者看我下面几个教程,自己摸索下就做出来了,我也才学了一小部分,学完再发后面的

提供一个这个模块学习的好网址,大家可以参考学习,我才看了不到半就搞了个自动填体温,太简单了:

http://class.itest.info/selenium_python

顺便说一下我的扣扣群,我自己的代码,很多都放到扣扣群,有问题也可以群里找我,免费免费,都是学生,大家互助,评论的话我很少看,基本回不了大家问题:

QQ群:   970353786

代码我就不演示了哈,自己运行试试就知道了
(一):元素定位

from selenium import webdriver#导入模块
browser=webdriver.Chrome()#初始化
browser.get('https://www.taobao.com')#get请求淘宝网页
#print(browser.page_source)#打印网页源码
href=browser.find_element_by_link_text('男装')#文本获取链接
# print(href)
lei=browser.find_element_by_class_name('service-bd')#class name定位
# print(lei)
id=browser.find_element_by_id('tb-beacon-aplus')#id定位
# print(id)
name=browser.find_elements_by_name('goods')#name定位
# print(name)
print("设置浏览器宽480、高800显示")
browser.set_window_size(480, 800)
browser.quit()#关闭浏览器
#类似还有:tag name,partial link text,xpath,css selector
# browser.close()#关闭浏览器


# from selenium import webdriver
#
# from time import sleep
# #1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
# browser = webdriver.Chrome('C:\ProgramData\Microsoft\Windows\Start Menu\Programs\chromedriver')
#
# #2.通过浏览器向服务器发送URL请求
# browser.get("https://www.baidu.com/")
#
# sleep(3)
#
# #3.刷新浏览器
# browser.refresh()
#
# #4.设置浏览器的大小
# browser.set_window_size(1400,800)
#
# #5.设置链接内容
# element=browser.find_element_by_link_text("新闻")
# element.click()
#
# element=browser.find_element_by_link_text("“下团组”时间")
# element.click()


(二)控制网页前后

from selenium import webdriver

driver = webdriver.Chrome(executable_path='C:\ProgramData\Microsoft\Windows\Start Menu\Programs\chromedriver')

#访问百度首页
first_url= 'http://www.baidu.com'
print("now access %s" %(first_url))
driver.get(first_url)#获取当前百度网页

#访问新闻页面
second_url='https://www.taobao.com'
print("now access %s" %(second_url))
driver.get(second_url)#获取当前新闻网页

#返回(后退)到百度首页
print("back to  %s "%(first_url))
driver.back()

#前进到新闻页
print("forward to  %s"%(second_url))
driver.forward()

driver.refresh() #刷新当前页面

driver.quit()#退出

(三)自动输入,返回的控制

# from selenium import webdriver
#
# driver = webdriver.Chrome()
# driver.get("https://www.baidu.com")
#
# driver.find_element_by_id("kw").clear()#清楚输入框原来的内容
# driver.find_element_by_id("kw").send_keys("selenium")#找到输入框,输入selenium
# driver.find_element_by_id("su").click()#找到‘百度一下’,点击进行搜索
#
# driver.quit()


# from selenium import webdriver
# from time import sleep
# driver = webdriver.Chrome()
# driver.get("https://www.baidu.com")
#
# search_text = driver.find_element_by_id('kw')#找到输入框
# search_text.send_keys('selenium')#输入内容
# search_text.submit()#submit相当于回车,跟click差不多
# sleep(5)#5秒后关闭
# driver.quit()


# from selenium import webdriver
#
# driver = webdriver.Chrome()
# driver.get("http://www.baidu.com")
#
# # 获得输入框的尺寸
# size = driver.find_element_by_id('kw').size
# print(size)
#
# # 返回百度页面底部备案信息
# text = driver.find_element_by_class_name('s-bottom-layer-content').text#备案信息为文本
# print(text)
#
# # 返回元素的属性值, 可以是 id、 name、 type 或其他任意属性
# attribute = driver.find_element_by_id("kw").get_attribute('type')
# print(attribute)
# #
# # # 返回元素的结果是否可见, 返回结果为 True 或 False
# result = driver.find_element_by_id("kw").is_displayed()
# print(result)
#
# driver.quit()

(四)鼠标控制


from selenium import webdriver
#1.引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains

#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
driver = webdriver.Chrome(executable_path ="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\chromedriver")

driver.get("https://www.baidu.com")
driver.maximize_window()
#2.定位到要悬停的元素
element= driver.find_element_by_id('s-usersetting-top')

#3.对定位到的元素执行鼠标悬停操作
# ActionChains(driver).move_to_element(element).perform()
element.click()
#找到链接
elem1=driver.find_element_by_link_text("搜索设置")
elem1.click()

#通过元素选择器找到id=sh_2,并点击设置
elem2=driver.find_element_by_id("sh_1")
elem2.click()

#保存设置
elem3=driver.find_element_by_class_name("prefpanelgo")
elem3.click()

# perform(): 执行所有 ActionChains 中存储的行为;
#
# context_click(): 右击;
#
# double_click(): 双击;
#
# drag_and_drop(): 拖动;
#
# move_to_element(): 鼠标悬停。

介绍完毕,有问题留言或者群里找我,最近正在研究qq机器人,有兴趣也可以跟我一起来做