精华内容
下载资源
问答
  • python中xpath基本用法

    千次阅读 2018-02-28 21:00:40
    1.网页的解析方式 1)xpath(简单) 2)正则(最难) 3)css(需要懂网页的css) 4)bs4(比xpath难一点点) 2.xpath的基本用法 1)环境准备:首先安装火狐浏览器(版本不能太高) 在浏览器右上角三个横杠--&...

        1.网页的解析方式

            1)xpath(简单)
            2)正则(最难)
            3)css(需要懂网页的css)
            4)bs4(比xpath难一点点)

        2.xpath的基本用法

            1)环境准备:首先安装火狐浏览器(版本不能太高)
                        在浏览器右上角三个横杠-->附加组件-->获取附加组件-->搜索firebug和firepath两个插件安装,如果提示重启,点击那个重启即可
            2)验证环境是否配置成功:右键点击网页-->Inspect in FirePath  看是否能点击成功
            3)基本操作
                //元素标签名    例如://div 功能是查找网页内的所有div
                //元素标签名[@属性名=’具体内容‘]   例如://div[@class='box'] 功能是查找存在属性@class='box'的div
                //元素标签名[第几个]     例如://div[@class="box"][2] 查找符合条件的第二个div
                //元素1/元素2/元素3...   例如://ul/li/div/a/img  查找ul下的li下的div下的a下的img标签
                //元素1/@属性名          例如://ul/li/div/a/img/@src  查找ul下的li下的div下的a下的img标签的src属性
                //元素/text()   例如://a/text() 获取a标签下的文本(一级文本)
                //元素//text()  例如://div[@class='box']//text() 获取class=‘box’的div下的所有文本
                //元素[contains(@属性名,'相关属性值')]   例如://li[contains(@class,'zhangsan')]  查找class中包含zhangsan的div
                //*[@属性='值']  例如://*[@name='lisi'] 查找name为lisi的元素
    展开全文
  • python xpath用法

    千次阅读 多人点赞 2018-07-30 21:07:35
    xpathPython的爬虫学习,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线。 xpath的简单用法: import requests # ...

    xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线。

    xpath的简单用法:

    import requests
    # 引入xpath模块
    from lxml import etree
    
    url ='http://www.qiushibaike.com/hot/page/1'
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'
    }
    response = requests.get(url,headers=headers)
    print(response.content)
    # 将字符串转化成html代码
    root = etree.HTML(response.content)
    print(root)
    # //从根标签开始找 找到类名为author clearfix的标签
    # /a 找到某一个标签下面的a标签
    # text()获取标签的文本
    name = root.xpath('//div[@class="author clearfix"]/a/h2/text()')
    #值是一个列表
    print(name)
    content = root.xpath('//div[@class="content"]/span/text()')
    print(content)

     

    1) // 双斜杠 定位根节点,会对全文进行扫描,在文档中选取所有符合条件的内容,以列表的形式返回。 

    html = etree.parse(源码)
    print(type(html))
    print(html)
    # 找到网页内所有的a标签
    a = html.xpath('//a')
    print(a)
    
    # 找到所有的ul标签
    # 找到所有ul当中的所有a标签
    # 获取a标签文本和所有a标签的子标签的文本
    result = html.xpath('//ul//a//text()')
    print(result)


    2) / 单斜杠 寻找当前标签路径的下一层路径标签或者对当前路标签内容进行操作 
    3) /text() 获取当前路径下的文本内容 

    # 找到指定的文本内容
    # 如果找某一个标签的文本 而这个标签下面还有其他的标签
    # 那么只找这个标签的文本 子标签的文本不找
    result = html.xpath('//a/text()')
    print(result)
    
    # 获取指定id名字的标签的文本
    result = html.xpath('//ul/li/a[@id="jd"]/text()')
    print(result)
    # 获取拥有指定类名的标签的文本
    result = html.xpath('//a[@class="shopping"]/text()')
    print(result)
    
    # //text()找到本标签以及所有子标签的文本
    result = html.xpath('//div//text()')
    print(result)
    for name in result:
        print(name)


    4) /@xxxx 提取当前路径下标签的属性值 

    # 找到所有a标签的超链接属性
    result = html.xpath('//a/@href')
    print(result)

     

    5) last()获取最后一个

    result = html.xpath('//ul/li[last()]')
    print(result)


     

    xpath爬虫例子,爬取天堂图片网:

    # shutil 是高级的文件,文件夹,压缩包处理模块
    import os,shutil
    # urlretrieve 用于图片的下载
    from urllib.request import urlretrieve
    import requests
    from lxml import etree
    
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'
    }
    # 创建文件夹
    if os.path.exists('images'):
        shutil.rmtree('images', True)
    else:
        os.mkdir('images')
        os.chdir('images')
    record = 1
    def get_image_with_code(url):
        response = requests.get(url,headers=headers).content
        # print(response)
        code  = etree.HTML(response)
        # 获取图片img标签
        img_list = code.xpath('//div[@class="il_img"]/a/img')
        print(img_list)
        global record
        print('正在下载第{}页'.format(record))
        os.mkdir('第{}页'.format(record))
        os.chdir('第{}页'.format(record))
        for img in img_list:
            # img_src = img.get('src')
            # 获取图片地址
            img_src = img.xpath('@src')[0]
            # 获取图片名
            img_alt = img.get('alt')+'.jpg'
            print(img_src,img_alt)
            #下载 前面为图片地址,后面为图片名字
            urlretrieve(img_src,img_alt)
        record += 1
        # 返回父级目录
        os.chdir(os.path.pardir)
        # 获取下一页的链接
        next_page_url = code.xpath('//a[@class="page-next"]/@href')[0]
        print(next_page_url)
        if len(next_page_url) == 0:
            print('已到最后一页')
            return
        else:
            base_url = 'http://www.ivsky.com'
            # 拼接网址
            full_url = base_url+next_page_url
            # 调用方法获取下一页图片
            get_image_with_code(full_url)
    # 调用方法开始爬取图片
    get_image_with_code('http://www.ivsky.com/tupian/meishishijie/')

     

     

    展开全文
  • Python XPath用法

    千次阅读 2019-04-11 21:07:06
    XPath用法 基本语法 表达式 描述 nodename 选取此节点的所有子节点。 / 从根节点选取。 // 从匹配选择的当前节点选择文档的节点,而不考虑它们的位置。 . 选取当前节点。 … 选取当前节点的父...

    XPath用法

    • 基本语法
    表达式 描述
    nodename 选取此节点的所有子节点。
    / 从根节点选取。
    // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
    . 选取当前节点。
    选取当前节点的父节点。
    @ 选取属性。
    • 基本演示规则
    路径表达式 结果
    bookstore 选取 bookstore 元素的所有子节点。
    /bookstore 选取根元素 bookstore。注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!
    bookstore/book 选取属于 bookstore 的子元素的所有 book 元素。
    //book 选取所有 book 子元素,而不管它们在文档中的位置。
    bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
    //@lang 选取名为 lang 的所有属性。

    谓语(Predicates)

    谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。

    在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

    路径表达式 结果
    /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
    /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
    /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
    /bookstore/book[position()❤️] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
    //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
    //title[@lang=’eng’] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
    /bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
    /bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

    选取未知节点

    XPath 通配符可用来选取未知的 XML 元素。

    通配符 描述
    * 匹配任何元素节点。
    @* 匹配任何属性节点。
    node() 匹配任何类型的节点。

    在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

    路径表达式 结果
    /bookstore/* 选取 bookstore 元素的所有子元素。
    //* 选取文档中的所有元素。
    //title[@*] 选取所有带有属性的 title 元素。

    选取若干路径

    通过在路径表达式中使用“|”运算符,您可以选取若干个路径。

    实例

    在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

    路径表达式 结果
    //book/title | //book/price 选取 book 元素的所有 title 和 price 元素。
    //title | //price 选取文档中的所有 title 和 price 元素。
    /bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。
    • 使用步骤
    # 导包
    from lxml import etree
    # 创建对象 html为网页代码
    selector = etree.HTML(html)
    # 提取内容
    content = selector.xpath("xxxx")
    # 获取标签内所有的文本
    texts = content.xpath('string(.)')
    
    展开全文
  • python爬虫xpath用法

    2018-12-20 19:54:06
    python爬虫xpath用法 一、xpath介绍 XPath 是一门在 XML 文档查找信息的语言。XPath 用于在 XML 文档通过元素和属性进行导航。 XPath 使用路径表达式在 XML 文档进行导航 XPath 包含一个标准函数库 XPath 是...

    python爬虫xpath的用法

    一、xpath介绍

    XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。

    XPath 使用路径表达式在 XML 文档中进行导航
    XPath 包含一个标准函数库
    XPath 是 XSLT 中的主要元素

    试验所使用的html代码

        import lxml.html
        test_data = """
                <div>
                    <ul>
                         <li class="item-0"><a href="link1.html" id="places_neighbours__row">9,596,960first item</a></li>
                         <li class="item-1"><a href="link2.html">second item</a></li>
                         <li class="item-inactive"><a href="link3.html">third item</a></li>
                         <li class="item-1"><a href="link4.html" id="places_neighbours__row">fourth item</a></li>
                         <li class="item-0"><a href="link5.html">fifth item</a></li>
                         <li class="good-0"><a href="link5.html">fifth item</a></li>
                     </ul>
                     <book>
                            <title lang="aaengbb">Harry Potter</title>
                            <price id="places_neighbours__row">29.99</price>
                    </book>
                    <book>
                        <title lang="zh">Learning XML</title>
                        <price>39.95</price>
                    </book>
                    <book>
                        <title>Python</title>
                        <price>40</price>
                    </book>
                 </div>
          
                """
                '''
    /   从根标签开始
    //  从当前标签
    *   通配符
    //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']
    //div/book[last()]/titlt/text()     #将最后一个book元素选出来
    //div/book[price > 39]/title/text()     将book子标签price数值大于39的选择出来
    //li[starts-with(@class,"item")]/a/text()   将class属性前缀是item的li标签选出
    //title[contains(@lang,"eng")]      将title属性lang含有eng关键字的标签选出
    
    '''
    
    
    
    html = lxml.html.fromstring(test_data)
    html_data = html.xpath('//div/book[1]/title')
    print(html_data)
    # print(dir(html_data[0]))
    for i in html_data:
        print(i.text)
    
    展开全文
  • xpath 是查询语言,可以在XML文档查找信息的语言。主要用于在XML文档通过元素和属性进行导航来查询。 xpath的调用方法: from lxml import etree index_db = """ &lt;!DOCTYPE ...
  • python 爬虫之xpath用法

    2019-07-19 01:06:31
    XPath全称为XML Path Language一种小型的查询语言,在爬虫,我们其实就是拿它来搜索HTML文档,仅此而已。而网页内容只有通过解析才能进行搜索,所以使用XPath时,需要引入lxml库,这个库就是来解析网页,协助XPath...
  • Python 爬虫 xpath 数据解析基本用法1. 基本语法1.1 解析 html 语法1.2 获取标签1.3 获取标签的内容1.4 获取标签的属性2. 实例 xpath 解析比 bs4 解析常用. import requests from lxml import etree 1. 基本...
  • Python爬虫2.2 — xpath用法教程

    千次阅读 2019-09-10 09:20:48
    Python爬虫2.2 — xpath用法教程综述XPath 介绍什么是XPathXPath 路径表达式XPath 标准函数XPath 开发工具XPath 语法XML 实例文档选取节点谓语选取未知节点选取若干路径需要注意的XPath 实例lxml 库使用lxml解析HTML...
  • 目前很多网页前端代码是框架或 JS 生成的,就导致了混乱而难以定位。为了快速而又复杂定位 Selenium 有一个 Xpath 选择器,可以选择复杂的页面定位,也是爬虫在网页定位的较优的选择。 ...
  • # 取第一个li的内容,xpath的是从1开始的,不是从0开始的 print(mytree.xpath('//li[@class]')) # 取所有有class属性的li print(mytree.xpath('//li[@id]/a/text()')) # 取所有的有id属性的li里的a标签的内容 print...
  • 安装  pypi下载地址:...XPath 是一门在 XML 文档查找信息的语言。XPath 可用来在 XML 文档对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上...
  • 简单来说,xpath 就是一种在 XML 文档查找信息的语言 而 XML 文档就是由一系列节点构成的树,例如,下面是一份简单的 XML 文档: <html> <body> <div> <p>Hello world<p> <a...
  • python的lxml和xPath用法

    千次阅读 2018-04-18 09:24:37
    安装lxml,xPathxPath语法:下面列出了最有用的路径表达式:表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档的节点,而不考虑它们的位置。.选取当前节点。..选取当前...
  • 不好意思 ,太仓促只能给你们个url 链接:https://blog.csdn.net/hhtnan/article/details/77509549 转载于:https://www.cnblogs.com/zlel/p/9566400.html
  • XPath 是一门在 XML 文档查找信息的语言。XPath 使用路径表达式在 XML 文档进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 的主要元素 。XPath 是一个 W3C 标准 。 2.xpath节点 xpath有七种类型的节点...
  • 本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法安装为什么要用这个库呢,因为要写爬虫啊,利用lxml库来...
  • XPath 是一门在 XML 文档查找信息的语言。XPath 使用路径表达式在 XML 文档进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 的主要元素 。XPath 是一个 W3C 标准 。 2.xpath节点 xpath有七种类型的...
  • 1pip install lxml利用 pip 安装即可XPath语法XPath 是一门在 XML 文档查找信息的语言。XPath 可用来在 XML 文档对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 ...
  • 前言本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法XPath 即为 XML 路径语言,它是一种用来确定 XML...
  • python学习-----xpath用法

    2018-07-31 09:57:47
    XPath 是一门在 XML 文档查找信息的语言。XPath 用于在 XML 文档通过元素和属性进行导航。 XPath 使用路径表达式在 XML 文档进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 的主要元素 XPath ...
  • Python爬虫xpath的简单用法(小例子) 简介 首先,XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档某部分位置的语言。 XPath基于XML的树状结构,提供在数据结构树找寻节点的能力。...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 144
精华内容 57
关键字:

python中xpath用法

python 订阅