from lxml import etree报错

from lxml import etree报错写一个小型的爬虫懒得用 scrapy 主要是 scrapy 不太好装 直接使用了 requests 请求 但是要解析数据 那么问题来了问题 1 使用的是 python3 7 的环境 解析数据要用 xpath 系统是 macpipinstal 一分钟后 下载成功开始写代码 fromlxmlimpo 挂了 lxml 中竟然没有 etree 模块换个方法

写一个小型的爬虫懒得用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')) 

本文链接:时光不写博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230989.html原文链接:https://javaforall.net

(0)
上一篇 2026年2月4日 下午7:01
下一篇 2026年2月4日 下午7:22


相关推荐

  • MyBatis-延迟加载与MyBatis缓存(面试题)

    MyBatis-延迟加载与MyBatis缓存(面试题)MyBatis-延迟加载与MyBatis缓存-概念性MyBatis-延迟加载与MyBatis缓存MyBatis-延迟加载与MyBatis缓存-概念性延迟加载(面试题)1、什么是延迟加载(按需加载)2、延迟加载MyBatis缓存(面试题)1、Cache缓存2、MyBatis缓存分析3、一级缓存4、二级缓存原理开启二级缓存5、禁用二级缓存6、刷新二级缓存延迟加载(面试题)1、什么是延迟加载(按需…

    2022年5月21日
    44
  • 为低端浏览器定义原型方法matchAll[通俗易懂]

    为低端浏览器定义原型方法matchAll[通俗易懂]String.prototype.matchAll=function(reg){letmatchArr=[];letmatch;while((match=reg.exec(this))!==null){matchArr.push(match);}returnmatchArr;};

    2022年7月23日
    10
  • 首次备案图文引导

    首次备案图文引导

    2021年9月23日
    176
  • 数据库拉链表详解_拉链表断链

    数据库拉链表详解_拉链表断链一、前言在上一节简单介绍了拉链表,本节主要讲解如何通过binlog采集MySQL的数据并且按月分区的方式实现拉链表。这里以上节介绍的用户表(user)举例二、涉及到的表1.原始表(user)原始表指的是MySQL中的表,表结构如下:其中name为主键,如果没有主键则无法做拉链表。2.binlog流水表(user_binlog)操作类型字段枚举值为:insert、update、delete。设…

    2022年10月17日
    5
  • gradle和maven对比总结

    gradle和maven对比总结Gradle 优势 gradle 够灵活 gradle 使用的是 groovy 或者 kotlin 语言作为脚本的编写语言 这样极大的提高了脚本的灵活性 但是其本质上的原因是 gradle 的基础架构能够支持这种灵活性 你可以使用 gradle 来构建 native 的 C C 程序 甚至扩展到任何语言的构建 性能比较 对于大型项目来说 一次构建可能会需要很长的时间 尤其对于自动化构建和 CI 的环境来说 当然希望这个构建是越快越好 小项目 gradle 与 maven 构建时间相差无几 gradle 依赖 jar 包时配置写起来比 mav

    2026年3月17日
    2
  • 什么是多线程?如何实现多线程?[通俗易懂]

    什么是多线程?如何实现多线程?[通俗易懂]【转】什么是线程安全?怎么实现线程安全?什么是进程?什么是线程?什么是线程安全?添加一个状态呢?如何确保线程安全?synchronizedlock转自:https://blog.csdn.net/csdnnews/article/details/82321777什么是进程?电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。比如下图中的QQ、酷狗播放器、电脑…

    2022年6月5日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号