Selenium在python中的学习笔记

关于Selenium

模拟浏览器,IE系列、谷歌、火狐、Safari等浏览器都可模拟。

使用时需安装被模拟的浏览器驱动。

安装

pip install selenium

在CMD(windows环境)中按照上步安装好selenium,然后百度要模拟的浏览器驱动,下载对应的驱动版本。版本是exe程序,有包的解压一下,便捷使用的话需放在python路径里,例如我电脑里driver存在的路径在C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32文件夹里。

Q:代码运行时提示驱动不可用。我的chrome浏览器版本是80打头,驱动是81打头。

A:卸载了80版本浏览器,正好手头有82版本的,安装后再运行就能调用了。但我还不确定使用驱动的时候是否需要本地有同版本浏览器。

使用示例

#此示例用来获取指定网页的部分评论信息。先在浏览器开发者模式下看好需要读取的页面的html特征,
#这里观察到div下class为“con”的里面包含评论,评论的tag为p。
from selenium import webdriver
import time
#chromedriver若不在python路径下,需用executable_path参数指定地址
driver = webdriver.Chrome()
driver.implicitly_wait(20)#隐性等待,最长等20秒

#用驱动打开网页
driver.get("http://www.bilibili.com/bangumi/play/ss29343")
time.sleep(5)

#这里注意elements与element的区别
comments = driver.find_elements_by_css_selector('div.con')
#遍历匹配到的div里的p标签内容,即所需评论
for eachcomment in comments:
	content = eachcomment.find_element_by_tag_name('p')
	print(content.text)

注意不同的driver在调用时,方法名是不同的。

Selenium选择元素的方法:

● find_element_by_css_selector:通过元素的class选择,如<divclass='bdy-inner'>test</div>可以使用find_element_by_css_selector ('div.bdy-inner')。

● find_element_by_xpath:通过xpath选择,如<formid="loginForm"> 可以使用driver.find_element_by_xpath("//form[@id='loginForm']")。

● find_element_by_id:通过元素的id选择,如<div id='bdy-inner'>test</div>可以使用driver.find_element_by_id(' bdy-inner')。

● find_element_by_name:通过元素的name选择,如<inputname="username"type="text" />可以使用driver.find_element_by_name('password')。

● find_element_by_link_text:通过链接地址选择,如<ahref="continue. html">Continue</a>可以使用driver.find_element_by_link_text('Continue')。

● find_element_by_partial_link_text:通过链接的部分地址选择,如<a href="continue. html">Continue</a>可以使用driver.find_element_by_partial_link_text('Conti')。

● find_element_by_tag_name:通过元素的名称选择,如<h1>Welcome</h1>可以使用driver.find_element_by_tag_name('h1')。● find_element_by_class_name:通过元素的class选择,如<pclass="content">Site content goes here.</p>可以使用driver.find_element_by_class_name ('content')。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值