爬虫进阶(2)

网页解析

test_data = """
        
Harry Potter 29.99 Learning XML 39.95 Python 40
"""
import re
import json
import lxml.html
import requests
from bs4 import BeautifulSoup

"""
/ 从根标签开始  必须具有严格的父子关系
// 从当前标签   后续节点含有即可选出
* 通配符 ,选择所有
//div/book[1]/title 选择div下第一个book标签的title元素
//div/book/title[@lang='zh'] 选择title属性含有lang且内容是zh的title元素
//div/book/title  //book/title  //title  具有相同的结果,因为使用相对路径最终指向title
//book/title/@* 将title所有的属性选择出来
//book/title/text() 将title的内容选择出来,使用内置text()函数
//a[@href="link1.html" and @id="places_neighbours__row"]
//a[@href="link1.html" or @id="places_neighbours__row"]
//div/book[last()]/title/text() 将最后一个book元素选出
//div/book[price > 39]/title 将book子标签price数值大于39的选出
//li[starts-with(@class,'item')] 将class属性前缀是item的li标签选出
//title[starts-with(@lang,'eng')] 将title属性lang含有eng关键字的标签选出
"""
html = lxml.html.fromstring(test_data)
html_data = html.xpath("//div/ul/li/a[@href='link1.html']")
html_data = html.xpath("//div/ul/li/a[@id]")
html_data = html.xpath("//div/ul/li[2]/a")
html_data = html.xpath("//div/book/title")
html_data = html.xpath("//book/title")
html_data = html.xpath("//title")
html_data = html.xpath("//book/title/text()")
html_data = html.xpath('//a[@href="link1.html" and @id="places_neighbours__row"]')
html_data = html.xpath('//a[@href="link1.html" and @id="places_neighbours__row"]/@href')
html_data = html.xpath("//div/book[last()]/title/text()")
html_data = html.xpath("//div/book[price > 39]/title/text()")
# print(dir(html_data[0]))
for i in html_data:
    print(i)

你可能感兴趣的:(爬虫)