鱼C论坛

 找回密码
 立即注册
查看: 2648|回复: 3

关于lxml爬虫的编码问题

[复制链接]
发表于 2016-9-12 10:45:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
以下是在下通过lxml和requests 两个库爬取的一个基本的GET网页,先上代码
affe1d4e-b0a1-4c4e-ace3-32fc05f269a0.JPG

很显然,这段代码是正确的。这里不对代码如何进行抓取进行叙述,但是关于编码问题,这里还是有一些不明白:
1.第一个红色框框:#-*- coding:UTF-8 -*-# 这段代码起到一个什么样的作用?
2.第二个红色框框:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

我知道python 默认是acsll码,这段代码加上去之后目的是为了将默认编码转换为UTF-8格式。但是如果把这段代码去掉的话,虽然r.encoding输出还是UTF-8,但是这段代码运行之后就出来Unicodeerror。所以还是搞不明白这段代码加与不加的区别?

3.第三个红色框框:这里是对HTML进行一个解析,用的是lxml的etree对象。——contenttree = etree.HTML(r.content.decode('utf-8')),这里的decode('UTF-8')究竟起到了一个什么样的作用
综上所述,本人对编码和解码的问题还是一知半解,,为了让代码正常运行如何要进行encode 如何要进行decode?还请大牛们,替我解决这个问题,在下不胜感激~~!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-9-12 11:23:54 | 显示全部楼层
用python3吧,这些烦恼都没有了~~
http://bbs.fishc.com/thread-73578-1-1.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-12 11:33:55 | 显示全部楼层
SixPy 发表于 2016-9-12 11:23
用python3吧,这些烦恼都没有了~~
http://bbs.fishc.com/thread-73578-1-1.html

因为我是初学者,刚开始接触python也是python 2.7,所以还是继续使用python2.7吧,,一些语法要重头开始学起不免有些厌倦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-14 17:47:09 | 显示全部楼层
az1243156 发表于 2016-9-12 11:33
因为我是初学者,刚开始接触python也是python 2.7,所以还是继续使用python2.7吧,,一些语法要重头开始学 ...

第一个 是声明 你写的代码用utf8解释(就是 劳资要出现非英文啦,请注意,别把我弄错)
第二个 暂时不是很懂
第三个 decode和encode都是相对于unicode码,decode是把你填的参数对应的格式解码成unicode,encode是把unicode转化成你填的参数对应的格式
具体可以百度一下  decode和encode的区别,一大堆
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-22 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表