spider----xpath学习

版权声明:个人原创,所属@jerry 本人 https://blog.csdn.net/qq_42938842/article/details/83590914
  1. xpath语法:
    1. 常用的路径表达式
      1. /   从根节点         ----       //   从任意位置开始查找
      2. .    从当前节点查找   -----    ..  .    从当前节点的父节点查找
      3. @ 选取标签属性
      4. bookstore/book[1]   取出符合要求的第一本book,下标从1开始
      5. bookstore/book[last()]   取出最后一本book
      6. bookstore/book[last()-1]  取出倒数第二本book
      7. bookstore/book[position()<3]  取出前两本book
      8. //book/title | //book/price   两个结果或起来
      9. //title[@lang]     所有拥有lang属性的title节点
  2. 谷歌插件的使用
    1. 谷歌浏览器插件的使用
      		启动和关闭:ctrl+shift+x
      	(1)属性筛选
      		//input[@id="kw"]
      		//span[@class="bg s_ipt_wr quickdelete-wrap"]
      	(2)层级和索引选择
      		//a[@class="mnav"][position()<3]
      		//a[@class="mnav"][last()]
      		//a[@class="mnav"][1]
      		//div[@id="head"]/div/div[3]/a[2]
      		//div[@id="head"]/div/div[@id="u1"]/a[2]
      		//div[@id="head"]/div//a[@class="mnav"][2]
      	(3)获取属性-获取文本
      		//div[@id="head"]/div//a[@class="mnav"][2]/@href
      		//div[@id="head"]/div//a[@class="mnav"][2]/text()
      	(4)函数
      		starts-with
      			//div[@id="u1"]/a[starts-with(@href,"https")]
      			//div[@id="u1"]/a[starts-with(text(),"地")]
      		contains
      			//div[@id="u1"]/a[contains(text(),"多产")]
      			//div[@id="u1"]/a[contains(@href,"www")]
      	谷歌浏览器自带xpath
      		//*[@id="u1"]/a[2]
      		//*[@id="result_logo"]/img[1]
      		#result_logo > img.index-logo-src
      	xpath在代码中的应用
      	(1)可以解析本地文件
      		from lxml import etree
      		tree = etree.parse(文件名)
      		ret = tree.xpath('路径表达式')
      		返回的是一个列表
      	(2)可以解析网络文件
      		tree = etree.HTML(网络文件字符串内容)
    2. xpath简单使用:
      1. from lxml import etree
        
        tree = etree.parse('xpath.html')
        
        # print(tree)
        # ret = tree.xpath('//li[@id="jun"]')
        
        # print(ret)
        ret = tree.xpath('//div[@class="xiandai"]')
        print(ret)

猜你喜欢

转载自blog.csdn.net/qq_42938842/article/details/83590914
今日推荐