==对linux知之太少哭晕在厕所==
xpath定位几种方式
1. 定位 通过 contains 定位包含“新闻”的元素
//div/a[contains(text(), 新闻)]
2. 定位 “新闻”元素的兄弟节点“hao123”
//div/following-sibling::a[contains(text(), 新闻)]
3. 定位 “新闻”元素的所有兄弟节点//for循环输出
//div/a[contains(text(), '%s')]/following-sibling::*" % u"新闻
4. 相对路径定位:
find_element_by_xpath(" //input[@id=’input’] ") #通过自身的 id 属性定位
find_element_by_xpath(" //span[@id=’input-container’]/input ") #通过上一级目录的id
5. 属性定位
find_element_by_xpath(" //div[@id=’hd’]/form/span/input ") #通过上三级目录的 id 属性定位
6. and or not
//div[@id=’hd’ or @name=’q’]
7. starts-with,matches
//div/a[starts-with(text(), 新闻)]
//div/a[starts-with(@id,’kw’ )]
//div/a[matches(text(), 新闻)]
8. position()
//tr/td[position()>1]
###应该还有些,但是我还不会,下次记得了在搞想知道怎么用正则
###爬虫时正则和xpath真的好重要啊哭晕
from lxml import etree
tree=etree.HTML(content)
x1=tree.xpath('//div/a/text()')[0]
x2=tree.xpath('//div/a/@href')[0]
因为是列表呀~
XPath会随着页面元素布局的改变而改变,兼容性不好,在不同的浏览器下对 XPath 的实现是不一样的???原来如此
css方法定位