💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
[toc=2] ## 问题1: 二维码被水印挡住了, 课时15:scarpy的安装和使用, 扫不出来怎么办? >[info] 这个确实是我的疏忽, 没有提前考虑到水印的位置, 还好二维码有30%的容错率, 基本没有问题, 但是课时15确实扫不出来, 现在已经更新了二维码, 同时对被水印遮挡的二维码, 又重新测试了一遍, 都没有问题了. ## 问题2: 获取淘宝数据的课程文档(课时14: [实战]爬取淘宝商品信息),NextPage方法下没有代码 >[info] 感谢"haoyuexihuai"同学的细心提醒, 在审核代码文档时, 一时疏忽, 现在已经补上 ## 问题3: CSS属性讲错了吧。src是路径, 不是a里面href(课时3: css选择器) >[info] 感谢"ykt1516427141357"同学的细心提醒, 确实讲错了, 应该是href, 现在已经在视频里增加了提示 ## 问题4: 现在python3.6里面自动安装的lxml不包括etree,有什么好的解决办法? >[info] 那就下载一个包含etree的[lxml版本](https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml)喽. ## 问题5: 爬虫为什么要使用etree, 如果不用etree, 有没有其他方法, 如何比较方法间的优劣? >[info] 一个一个回答你 #### 1. 为什么使用etree? 我们获取了页面代码, 想从页面代码中获取想要的数据, 可以使用`css选择器`或者是`xpath`, 但是前提是, 我们需要先解析页面代码, 生成结构树. 当然, 如果你直接用正则, 那没啥说的, 正则只要写的溜, 要啥有啥, 那就不用解析html页面代码了. etree只是解析html的一种手段, 当然可以有更多其他的选择 #### 2. 如果不用etree, 有没有其他方法 分两种情况, 如果你在使用scrapy, 没啥说的, 直接selector, 如果是使用beautifulsoup写的原生爬虫, 有如下选择, 对比见表格. #### 3. 方法对比 | 解析器 | 使用方法 | 优势 | 劣势 | | --- | --- | --- | --- | | Python标准库 | BeautifulSoup(markup, “html.parser”)| Python的内置标准库 执行速度适中 文档容错能力强| Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差 | | lxml HTML 解析器 | BeautifulSoup(markup, “lxml”) | 速度快 文档容错能力强 | 需要安装C语言库 | | lxml XML 解析器| BeautifulSoup(markup, [“lxml”, “xml”]) BeautifulSoup(markup, “xml”) | 速度快 唯一支持XML的解析器| 需要安装C语言库 | | html5lib | BeautifulSoup(markup, “html5lib”) | 最好的容错性 以浏览器的方式解析文档 生成HTML5格式的文档 | 速度慢 不依赖外部扩展 |