美文网首页
xpath , beautifulsoup4 , pyquery

xpath , beautifulsoup4 , pyquery

作者: 恬恬i阿萌妹O_o | 来源:发表于2018-11-26 16:42 被阅读0次

    xpath
    动态加载:使用json串转换
    静态页面:使用正则,xpath.......
    结构化数据:先有结构,在有数据 json path
    非结构化数据:先有数据,再有结构 正则,xpath,beautifusoup4

    什么是xpath: 是一门在 XML 文档中提取信息数据的语言,可以用来在xml文档中对元素(标签)的属性进行遍历
    我们在使用xpath之前首先需要将html文档转换为xml文档
    什么是xml:是传输数据而并非显示数据
    xpath 语法的目的,找到节点,提取信息
    xpath 语法
    使用xpath 语法提取数据
    xml:是一个可扩展的标记语言,语法和 html 相像,里面的节点可以自己定义,被设计的目的用来进行数据的传输和保存

    xpath的使用:
    安装lxml pip3 install lxml
    1.from lxml import etree
    html_lement = etree.HTML("response.text")
    html_lement = etree.HTML("html内容")

    常用的语法:
    notename:节点:查找出html中标签名为notname的节点(包括节点本身)
    / 表示从根节点的地方开始获取,(相对性的)
    // 表示从任意位置匹配出你想要的节点
    . 表示选取当前节点
    .. 表示选取当前节点的父节点
    @ 属性名:表示选择属性  /a/@href 语法规则
    text() 表示取标签文本内容   例如:获取a节点的中文 a/text()
    notename[@class=" "] 根据class获取节点
    notename[@id=" "] 根据id 获取节点
    notename[1]:表示标签名为第一个的节点 (从1开始,而不是从0开始)
    notename[last()]:表示取最后一个
    notename[last()-1]:表示取倒数第二个
    notename[post() > 3] 表示选取前三个

    beautifulsoup4

    bs4:bs4解析器,设计的目的同样是在html中寻找节点,但是效率比xpath要低

    使用bs4
    安装 pip3 install beautifulsoup4
    from bs4 import BeautifulSoup
    html_soup = BeautifulSoup('html文档','解析器')
    文档解析器常用的两种

    1. lxml:索命使用的是lxml.html(解析器)
    2. html.parser:python自带的html解析器

    #beautifulsoup 和 tag 类型的对象可以使用find_all 属性
    find_all:查找符合条件的全部节点
    name=None,:节点名称:可以是一个字符串,可以是一个列表,可以是一个正则表达式,(标签的名称)
    attrs={}, recursive=True,:节点的属性 是一个字典(标签的属性)
    text=None,:字符串,列表,正则表达式,(查找出所有跟text文本一致的内容)
    html_soup.find()

    css 选择器: . 表示 类 选择器
    # 表示 id 选择器

    获取文本内容
    .string 表示获取标签的文本内容
    .get_text() 表示获取标签的文本内容(使用的多)
    attrs() 获取标签的所有属性值
    attrs['属性名'] 获取标签的某个属性的属性值

    pyquery

    pyquery:相当于jQuery的python版本实现,它同样可以提取HTML页面中节点,
    pyquery 的使用:
    安装 pip3 install pyjquery
    from pyquery import PyQuery as pyq
    ”“”

    第一步构建一个PyQuery对象

    #传入字符串

    html_pq = pq('html文本')

    #传入lxml

    html_pq = pq(etree.fromstring('html文本'))

    #可以直接传入一个url

    html_pq = pq(url='url地址')

    “”“

    #传入文件

    html_pq = pq(filename='文件名称')

    pyquert 常用的语法:
    .html():获取某个html代码块
    .text():获取标签的文本内容
    .(selector): 根据css选择器获取目标节点
    .eq(index):根据索引获取指定标签(节点)
    .find():查找子节点
    .filter():根据class,id过滤节点
    .attr('属性名'):获取节点的属性值

    相关文章

      网友评论

          本文标题:xpath , beautifulsoup4 , pyquery

          本文链接:https://www.haomeiwen.com/subject/gkibqqtx.html