精华内容
下载资源
问答
  • 安装lxml包没有etree模块

    千次阅读 2020-01-03 19:13:32
    下载的是lxml4.4.2,在网上找了这个问题,提到lxml在3点几的版本中是可以直接导etree的,4点几的版本是没有etree的,但也有大神提到不是没有etree这个模块,而是可以用其他方法引出etree模块,试了一下,果然可以。...

    在爬虫的时候使用到lxml这个包,要从lxml中导入etree,但显示lxml中没有etree,我用的python3.7,直接pip install lxml,下载的是lxml4.4.2,在网上找了这个问题,提到lxml在3点几的版本中是可以直接导etree的,4点几的版本是没有etree的,但也有大神提到不是没有etree这个模块,而是可以用其他方法引出etree模块,试了一下,果然可以。
    可以先导html,from lxml import html,在用etree时这样调用etree=html.etree,以下是我用的代码。在这里插入图片描述

    展开全文
  • python之lxml.etree模块

    千次阅读 2019-09-23 16:23:44
    from lxml import etree # 导入etree模块 root=etree.Element('root',interesting='totatlly') # 创建一个节点对象,即标签对象,节点名为root,节点属性为interesting root.set('set','30') # 添加节点属性,属性...
    from lxml import etree      # 导入etree模块
    root=etree.Element('root',interesting='totatlly')  #  创建一个节点对象,即标签对象,节点名为root,节点属性为interesting
    root.set('set','30')        # 添加节点属性,属性名为set
    root.text='data'            # 设置对象的text属性为data,即标签中的文本
    x=etree.tostring(root)      # 将节点对象转化为bytes类型
    one=etree.fromstring(x)     # 将字符串转化为节点对象
    two=etree.XML(x)            #  xml类型
    thr=etree.HTML(x)           # html类型
    print(root)  
    print(root.tag)             #  root节点对象的标签名
    print(root.text)            #  root节点对象的文本
    print(type(root))         
    print(etree.tostring(one))  # 显示节点对象转化为bytes类型的数据
    print(etree.tostring(two)) 
    print(thr.text)                     
    print(etree.tostring(thr))     
    
    <div>
        <ul>
             <li class="item-0"><a href="link1.html">first item</a></li>
             <li class="item-1"><a href="link2.html">second item</a></li>
             <li class="item-inactive"><a href="link3.html">haha<span class="bold">third item</span></a></li>
             <li class="item-1"><a href="link4.html">fourth item</a></li>
             <li class="item-0"><a href="link5.html">fifth item</a></li>
         </ul>
     </div>
    
    html=etree.parse('./hello.html')
    result=etree.tostring(html,pretty_print=True)
    res=html.xpath('//li/@class')
    re1=html.xpath('//li[1]/@class')
    re2=html.xpath('//li[last()]/@class')
    re3=html.xpath('//li[last()-1]/@class')
    re4=html.xpath('//li[last()-1]/a')
    print(html)
    print(result)
    print(res)
    print(re1)
    print(re2[0])
    print(type(re3[0]))
    print(re4[0].text)
    
    r=etree.XML(result)
    print(r.find('ul'))
    print(r.findall('.//li[@class]'))
    for i in r.iterfind('.//li[@class]'):
        print(i.tag)
    
    html=etree.parse('./hello.html')
    result=etree.tostring(html)
    xml=etree.XML(result)
    r1=xml.findall('.//li')
    r2=html.xpath('//li/@class')
    r3=xml.find(".//li/a[@href='link1.html']")
    print(r1)
    print(r2)
    print(r3)
    
    xml_doc = r'''<?xml version="1.0" ?>
    
     <bookstore>
    
     <book category="COOKING">
       <title lang="en">Everyday Italian</title>
       <author>Giada De Laurentiis</author>
       <year>2005</year>
       <price>30.00</price>
     </book>
    
     <book category="CHILDREN">
       <title lang="en">Harry Potter</title>
       <author>J K. Rowling</author>
       <year>2005</year>
       <price>29.99</price>
     </book>
    
     <book category="WEB">
       <title lang="en">XQuery Kick Start</title>
       <author>James McGovern</author>
       <author>Per Bothner</author>
       <author>Kurt Cagle</author>
       <author>James Linn</author>
       <author>Vaidyanathan Nagarajan</author>
       <year>2003</year>
       <price>49.99</price>
     </book>
    
     <book category="WEB">
       <title lang="en">Learning XML</title>
       <author>Erik T. Ray</author>
       <year>2003</year>
       <price>39.95</price>
     </book>
     <book category="WEB">
       helloworld
       <title lang="en">Learning XML</title>
       <author>Erik T. Ray</author>
       <year>2003</year>
       <price>39.95
       <tt>
       haha
       </tt>
       </price>
     </book>
    
     </bookstore> '''
    
    tree=etree.XML(xml_doc)
    r1=tree.xpath('/bookstore/book[price>30]/title')
    for i in r1:
        print(i.text)
    
    展开全文
  • lxml包没有etree模块和parse报错处理

    千次阅读 2019-08-15 20:01:13
    lxml包没有etree模块的解决方法: 环境:python3.7+ lxml4.4.4 因为etree是C语言写的,所以在import时,不会有提示,直接输入即可 from lxml import etree 在使用etree.parse时报错,原因:该方法默认使用...
    • lxml包没有etree模块的解决方法:

    环境:python3.7+ lxml4.4.4

    因为etree是C语言写的,所以在import时,不会有提示,直接输入即可

    from lxml import etree

     

    • 在使用etree.parse时报错,原因:该方法默认使用的是“XML”解析器,所以如果碰到不规范的html文件时就会解析错误

    htmlElement = etree.parse('renren.html')
      File "src\lxml\etree.pyx", line 3467, in lxml.etree.parse
      File "src\lxml\parser.pxi", line 1839, in lxml.etree._parseDocument
      File "src\lxml\parser.pxi", line 1865, in lxml.etree._parseDocumentFromURL
      File "src\lxml\parser.pxi", line 1769, in lxml.etree._parseDocFromFile
      File "src\lxml\parser.pxi", line 1163, in lxml.etree._BaseParser._parseDocFromFile
      File "src\lxml\parser.pxi", line 601, in lxml.etree._ParserContext._handleParseResultDoc
      File "src\lxml\parser.pxi", line 711, in lxml.etree._handleParseResult
      File "src\lxml\parser.pxi", line 640, in lxml.etree._raiseParseError
      File "renren.html", line 4
    lxml.etree.XMLSyntaxError: StartTag: invalid element name, line 4, column 2

    解决办法:

    自己创建html解析器,增加parser参数

        parser = etree.HTMLParser(encoding='utf-8')
        htmlElement = etree.parse('renren.html', parser=parser)

     

    etree很多方法不会提示,直接手动输入即可:

    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    """
        功能:lxml和xpath使用
        环境:python3.7+ lxml4.4.4
        日期:2019/8/14 21:41
        作者:指尖魔法师
        版本:1.0
    """
    
    from lxml import etree
    
    def fromstring():
        text = '''
        <div>
            <ul>
                <li class="item-0"><a href="link1.html">first item</a></li>
                <li class="item-1"><a href="link3.html">second item</a></li>
                <li class="item-inactive"><a href="link4.html">third item</a></li>
                <li class="item-1"><a href="link4.html">fourth item</a></li>
                <li class="item-0"><a href="link5.html">fifth item</a></li>
            </ul>
        </div>
        '''
        htmlElement = etree.HTML(text)
        result = etree.tostring(htmlElement, encoding='utf-8').decode('utf-8')
        print(result)
    
    
    def fromfile():
        #默认是XML解析器,碰到不规范的html文件时就会解析错误,增加解析器
        parser = etree.HTMLParser(encoding='utf-8')
        htmlElement = etree.parse('renren.html', parser=parser)
        result = etree.tostring(htmlElement, encoding='utf-8').decode('utf-8')
        print(result)
    
    
    
    
    def main():
        #字符串读取html
        #fromstring()
    
        # 从文件读取html
        fromfile()
    
    
    if __name__ == '__main__':
        main()

     

    展开全文
  • lxml安装后无法import到etree模块

    千次阅读 2019-03-12 16:16:39
    新版本无法直接from lxml import etree,它换了一个办法引出etree模块而已! 方法如下分两步引入 from lxml import html etree = html.etree

    新版本无法直接from lxml import etree,它换了一个办法引出etree模块而已!

    方法如下分两步引入

    from lxml import html

     

    etree = html.etree
    展开全文
  • 最近用爬虫爬网页需要用到lxml包中的etree模块。我的pycharm中已经内置了lxml包最新的4.2.4版,然而这个版本居然丢掉了etree模块。搜了网上各种解决方法,搞定了这个问题。 然后就开始使用了 ...
  • 工程需要使用etree模块,于是按照网上教程装好了lxml包,结果发现包中居然没有etree模块。又去网上搜了一下,遇到同类问题的人很多,但提出重新安装lxml包的解决方法似乎不可行,探索了一下,得出以下解决方案。有位...
  • 最近用爬虫爬图片需要用到lxml包中的etree模块。我的pycharm中已经内置了lxml包最新的4.2.5版,然而这个版本居然丢掉了etree模块。搜了网上各种解决方法,终于在四个番茄(大概两小时)以后,搞定了这个问题。 解决...
  • 主要介绍了Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件,封装函数的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 由于今天用Pyhton做爬虫的时候,需要用上xpath,我...解决方法原因其实也很简单,这是因为在python3.5之后的 lxm 模块l中不能再直接引入etree模块,虽然新版本无法直接”from lxml import etree“这样,但是,它只...
  • 于是百度啊,说部分lxml版本没etree模块,于是下载了个lxml-3.7.1,发现引入的时候还是没有,又换回3.8.0 然后在命令行敲了,发现是有的 以为是编辑器问题,重启试试,结果还是没有,不管了直接用
  • 在将以前写过的python2.7版本的代码迁移到python3.6版本的环境中遇到了lxml中没有etree模块的问题,经过查阅代码和资料发现使用pip安装的lxml库是最新版的,其中没有集成etree模块,我看了自己之前使用的lxml版本是...
  • Anaconda3+Python3.8+pycharm:from lxml import etree模块的解决方法 1.首先在 Anaconda对应库路径(我的是:E:\anaconda\path\Lib\site-packages)里找到lxml的两个文件夹 2.删除这两个不支持的安装包,在 下载...
  • ImportError: cannot import name ‘etree’ from ‘lxml’ 今天在做网络爬虫的时候,需要用上xpath,环境中已经安装了lxml库,...报错原因: python3.5之后的 lxml 库中不能直接引入etree模块,新的版本无法直接...
  • Python爬虫 requests etree 模块

    千次阅读 2018-01-28 17:44:53
    from lxml import etree url='https://movie.douban.com/subject/1293052/' data=requests.get(url).text #print(data) s=etree.HTML(data) #//*[@id="content"]/h1/span[1] film=s.xpath('//*[@i
  • 直接将pip更新至最新 python -m pip install --upgrade pip 如果之前有安装lxml的话先卸载 pip uninstall lxml 安装lxml pip install lxml 最后在代码中尝试引用 from lxml import html html.etree.HTML("text")
  • 您必须明确导入子包才能使其可用:import lxml.etreefull_xml_tree = lxml.etree.parse('myfile.xml')实现您尝试执行的操作的推荐方法是导入ElementTree模块:import xml.etree.ElementTree as ETtree = ET.parse('...
  • 安装了好多个lxml版本发现都没有etree这个模块… 问题解决:发现在这个网站下载就能解决问题了。 网站地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/ 进去后 ctrl +F 搜索 lxml 下载相应的版本,我下载的是...
  • 使用from lxml import etree 现红: 解决: python 3.5之后的lxml中不能再直接引入etree,换了一种方法引入: from lxml import html etree = html.etree
  • pip install -i https://mirrors.aliyun.com/pypi/simple/ lxml

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,888
精华内容 3,155
关键字:

etree模块