from lxml import etree报错-阿里云开发者社区

开发者社区> 开发与运维> 正文

from lxml import etree报错

简介: 写一个小型的爬虫懒得用scrapy(主要是scrapy不太好装...),直接使用了requests请求,但是要解析数据,那么问题来了 问题1: 使用的是python3.7的环境,解析数据要用xpath,系统是mac pip install lxml 一分钟后。

写一个小型的爬虫懒得用scrapy(主要是scrapy不太好装...),直接使用了requests请求,但是要解析数据,那么问题来了


问题1:

  • 使用的是python3.7的环境,解析数据要用xpath,系统是mac

    pip install lxml

    一分钟后。。。下载成功

  • 开始写代码,

    from lxml import etree

    挂了...,lxml中竟然没有etree模块

  • 换个方法

    from lxml import html
    et = html.etree

    依然挂了...

解决:

  • 开始找解决办法
    百度中。。。,找了一堆的方法,全部失败
    google中。。。,又找了一堆的方法,全部失败
    即将放弃,准备切换python版本,开始水群。。。,群里大佬给了个阿里源的地址,恍然大悟!!!

    pip install -i https://mirrors.aliyun.com/pypi/simple/ lxml 
    -----------
    
    from lxml import html
    et = html.etree
    print(et.HTML(response.content))

    终于突破了这个问题

问题2:

  • 解析过后发现有些需要整个代码块转为字符串

    import xml.etree.ElementTree as ET
    print(ET.tostring(dom代码块, encoding='utf8'))
  • 数据是有了,但是不太对,中文出来的是十六进制的数据,没法继续了啊
    百度/Google,我又来了。。。

解决:

print(str(ET.tostring(dom代码块, encoding='utf8'), 'utf-8'))

参考链接:时光不写博客

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章