利用python定位网页上的元素
1. 想对网页上的元素进行操作,首先需要定位到元素。
以百度首页为例:
输入以下代码,打开百度首页:
# coding = gbk
from selenium import webdriver chrome_driver_path = "C:\Python27\selenium\webdriver\chromedriver\chromedriver"
global browser
browser = webdriver.Chrome(chrome_driver_path)
url_int = "https://www.baidu.com/"
browser.get(url_int)
print "Open baidu"
2. 在打开的百度首页,右键点击,选择“查看网页源代码”。
以下网页源代码是与百度输入框和“百度一下”按钮有关的,先提取在这里,方便后续定位。
<span class="bg s_ipt_wr"><input id="kw" name="wd" class="s_ipt" value="" maxlength="" autocomplete="off"></span><span class="bg s_btn_wr"><input type="submit" id="su" value="百度一下" class="bg s_btn"></span>
3. 定位百度输入框
通过id定位:
browser.find_element_by_id("kw")
通过name定位:
browser.find_element_by_name("wd")
通过标签名tag_name定位:
browser.find_element_by_tag_name("input")
通过class_name定位:
browser.find_element_by_class_name("bg_s_btn_wr")
通过css定位:
- 以id定位:
browser.find_element_by_css_selector("a[id=\"kw\"]")
- 以name定位:
browser.find_element_by_css_selector("a[name=\"wd\"]")
通过XPath定位:(XPath是一种在XML文档中定位元素的语言)
- attribute属性定位(定位input标签下,id=kw的元素):
browser.find_element_by_xpath("//input[@id='kw']")
- id相关性定位(/form/span/input层级标签下,div标签下,id=fm的元素):
browser.find_element_by_xpath("//div[@id='fm']/form/span/input")
- id为check的tr,定位它的第2个td:
browser.find_element_by_xpath("tr[@id='check']/td[2]")
- position位置定位(第7个tr里面的第2个td):
browser.find_element_by_xpath("//tr[7]/td[2]")
- href水平参考定位(a标签下,查找包含‘网页’的文本text元素):
browser.find_element_by_xpath("//a[contains(text(),'网页')]")
- link定位(a标签下,查找链接为'href='http://www.baidu.com/'的元素):
browser.find_element_by_xpath("//a[@href='http://www.baidu.com']")
通过link定位(可以查找文字链接,打开贴吧链接):
browser.find_element_by_link_text("贴吧")
browser.find_element_by_partial_link_text("贴")
4. 定位”百度一下“按钮
通过class_name定位:
browser.find_element_by_class_name("bg_s_btn_wr")
更多参考资料,请参考:
http://www.cnblogs.com/qingchunjun/p/4208159.html
利用python定位网页上的元素的更多相关文章
- css015 定位网页上的元素
css015 定位网页上的元素 一. 定位属性的功能 1. 四中类型的定位 Position: absolute relative fixed static a. 绝对定位 绝对定 ...
- CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术
基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 ...
- 爬虫学习笔记(1)-- 利用Python从网页抓取数据
最近想从一个网站上下载资源,懒得一个个的点击下载了,想写一个爬虫把程序全部下载下来,在这里做一个简单的记录 Python的基础语法在这里就不多做叙述了,黑马程序员上有一个基础的视频教学,可以跟着学习一 ...
- 有关利用python获取网页, 以及KDD近几年论文标题与摘要链接
最近一直在看KDD的论文,不过,由于老师并没有什么合理的方向性,所以考虑把kdd中的大部分内容都利用python将所有标题.摘要获取下来. 还有一个原因在于,看acm上的摘要,都只显示了两行,再看多点 ...
- CSS定位网页中的元素
relative相对定位 偏移设置:left.right.top.bottom 值单位:px 元素的规律: 相对定位元素的规律 设置相对定位的盒子会相对它原来的位置通过指定偏移,到达新的位置. 设置相 ...
- Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记
涉及关键词:requests库 requests.post方法 cookies登陆 version 1.5(附录):使用post方法登陆豆瓣,成功! 缺点:无法获得登陆成功后的cookie,要使用js ...
- Python从网页上爬取图片
在搜索壁纸的时候,想把壁纸保存到本地,一张一张的保存太过麻烦,所以想到用Python来爬取壁纸. 设计思路: 1.首先先去找有壁纸的网页: http://www.acfun.cn/a/ac334521 ...
- 利用python监测linux上的服务(简单实现服务宕掉自动发送邮件)
python 这里用到了四个python 模块 : import time (时间模块) import re (正则模块) import socket (监测端口模块)import yagmail ( ...
- python下载网页上公开数据集
URL很简单,数据集分散开在一个URL页面上,单个用手下载很慢,这样可以用python辅助下载: 问题:很多国外的数据集,收到网络波动的影响很大,最好可以添加一个如果失败就继续请求的逻辑,这里还没有实 ...
随机推荐
- pheatmap绘制“热图”,你需要的都在这
热图可以聚合大量的数据,并可以用一种渐进色来优雅地表现,可以很直观地展现数据的疏密程度或频率高低. 本文利用R语言 pheatmap 包从头开始绘制各种漂亮的热图.参数像积木,拼凑出你最喜欢的热图即可 ...
- 关于HTML的引入CSS文件问题
一 html代码引用外部css文件时若css文件在本文件的父目录下的其他目录下,可使用绝对路径.此时路径要写为 “ ../ ”形式,如在tomcat下建立一个test文件,在该文件中建立两个文件 夹 ...
- 【JDK】JDK源码分析-Collection
Java 集合框架(Java Collections Framework, JCF)包含很多平时开发中的常用类,例如 List.Set.ArrayList.HashMap.HashSet 等,因此打算 ...
- 【MySQL】目录、文件权限问题
详情如下: $ cat /usr/local/mysql/data/Phoenix-slow.log cat: /usr/local/mysql/data/Phoenix-slow.log: Perm ...
- Android Studio "cannot resolve symbol R" 问题
初接触Android Studio,又遇到了 "cannot resolve symbol R"问题(以前在 Eclipse 也遇到过),网上方法不一,后来在stackoverfl ...
- Asp.Net MVC 高级特性(附带源码剖析)
1. 程序入口(MvcHandler,RouteHandler,HttpModule) 2.异步类包(静态类AsyncResultWrapper),开启整个MVC异步循环 3.Aggregate递归链 ...
- Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录
项目需求:这里暂且叫A公司吧,A公司有一套人事管理软件,需要与我们公司的软件做人员信息同步,A公司用的是SQL server数据库,我们公司用的Oracle,接口都不会开发(一万句"fuck ...
- linux下mysql无法看到3306端口监听
这个问题搞定了,原因是我的my.cnf有话:skip-network注释掉,然后运行netstat -an|grep 3306 就可以看到了
- codeforces679A_Bear and Prime 100 交互题
传送门 第一道交互题 题意: 电脑事先想好了一个数[,] 你会每次问电脑一个数是否是它想的那个数的因数 电脑会告诉你yes或no 至多询问20次 最后要输出它想的数是质数还是合数 思路: 枚举< ...
- 转载 | float 清除浮动的7种方法
什么叫浮动:浮动会使当前标签脱离文档流,产生上浮的效果,同时还会影响周边元素(前后标签)及父级元素的位置和width,height属性.下面用一个小例子来看一看浮动的全过程:1.首先我们新建一个网页, ...