Python-Selenium (个人更喜欢用八爪鱼)

1、Selenium-简介

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏

2、PhantomJS-简介

PhantomJS 是一个基于Webkit的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的 JavaScript
# 下载地址:http://phantomjs.org/download.html

3、Chromedriver-简介

Chromedriver 也是一个能够被selenium驱动的浏览器,但是和PhantomJS的区别在于它是有界面的
# 下载地址:https://npm.taobao.org/mirrors/chromedriver

4、driver-安装

最简单的安装方式是:解压后把bin目录下的可执行文件移动到环境变量下,比如/usr/bin 或者是/usr/local/bin下面
注意:Chromedriver和电脑上的chrome版本有对应关系,建议使用最新的Chromedriver版本并且更新chrome浏览器到最新版

5、selenium 使用

5-1、加载网页: selenium通过控制浏览器,所以对应的获取的数据都是elements中的内容
from selenium import webdriver
driver = webdriver.PhantomJS(“c:…/pantomjs.exe”)
driver.get("http://www.baidu.com/")
driver.save_screenshot("长城.png")
5-2、定位和操作
driver.find_element_by_id(“kw”).send_keys(“长城”)
driver.find_element_by_id("su").click()
5-3、查看请求信息
driver.page_source
driver.get_cookies()
driver.current_url
5-4、退出
driver.close() #退出当前页面
driver.quit() #退出浏览器

6、selenium的定位操作

6-1、方法介绍
find_element_by_id (返回一个元素)
find_elements_by_xpath (返回一个包含元素的列表)
find_elements_by_link_text (根据连接文本获取元素列表)
find_elements_by_partial_link_text (根据连接包含的文本获取元素列表)
find_elements_by_tag_name (根据标签名获取元素列表)
find_elements_by_class_name (根据类名获取元素列表)

find_element仅仅能够获取元素,不能顾直接获取其中的数据,find_element_by_xapth也是这样
# 获取文本:element.text
# 获取属性值:element.get_attribute("href")
6-2:案例演示
from selenium import webdriver

driver =webdriver.Chrome()

driver.get("https://www.douban.com/")

ret4 = driver.find_elements_by_tag_name("h1")print(ret4[0].text)#输出:豆瓣

ret5 = driver.find_elements_by_link_text("下载豆瓣 App")print(ret5[0].get_attribute("href"))#输出:https://www.douban.com/doubanapp/app?channel=nimingye

driver.close()

7、selenium 处理cookie

通过driver.get_cookies()能够获取所有的cookie
# 把cookie转化为字典{cookie[‘name’]: cookie[‘value’] for cookie in driver.get_cookies()}

#删除一条cookie
driver.delete_cookie("CookieName")# 删除所有的cookie
driver.delete_all_cookies()

posted on   cloud_wh  阅读(14)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示