python爬虫函数解码 爬虫解码的所有方法

python3爬虫urllib.request.urlopen("网址").read() 本来是utf-8 , 为什么还要加上urlencode(“utf-8”)你这行代码是不需要urlencode()的 。
对于返回的request对象,其read()()方法获得的其实是一个字节流对象,而非字符串对象,所以这时需要调用该字节流对象的decode()方法,按指定编码方式进行解码 。
至于urlencode() , 这是urllib中的一个函数 , 它的作用是将字符串进行url编码 。这个编码其实就是个转义的过程,将那些因可能造成解释器误会或安全问题而不适合出现在请求中的符号进行转义,并且把超出url编码表的字符降维 。
Python爬虫(七)数据处理方法之JSONJSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)python爬虫函数解码,是轻量级的文本数据交换格式,且具有自我描述性,更易理解 。
JSON看起来像python类型(列表,字典)的字符串 。
在之前的文章中,我们说到python爬虫函数解码了怎么用response的方法,获取到网页正确解码后的字符串 。如果还有不懂的,可以先阅读 Python爬虫(三)Requests库。接下来以有道翻译为例子,说说怎么通过网页解码后的字符串,提取到翻译结果 。
再结合上述有道翻译的例子 , 得到字典类型的返回结果,并提取出来翻译结果 。
将上述例子的dict_json换成str字符串,再写入文本中 。
执行完上述的程序 , 会得到一个fanyi.txt的文件,其结果如下:{"type": "ZH_CN2EN", "errorCode": 0, "elapsedTime": 1, "translateResult": [[{"src": "人生苦短,我用python", "tgt": "Life is too short, I use python"}]]} 。这样子的一份文档 , 中文部分显示的是二进制 , 且格式非常不利于阅读,这并不是我们想要的结果 。好在json.dumps()为我们提供的两个方法,以帮助我们更好阅读文档 。
1.ensure_ascii,能够让中文显示成中文;
2.indent , 能够让下一行在第一行的基础上空格 。
其用法如下:
python爬虫抓下来的网页,中间的中文乱码怎么解决对于python的中文编码问题可以参考下面的帖子
【python爬虫函数解码 爬虫解码的所有方法】同时 , 对于网页的中文乱码,建立使用requests模块代替urllib\urllib2
requests的content方法,对中文编码,支持比较好,基本不会出现乱码 。
req=requests.get(url,cookies=mecookies)
print req.content
具体用法,参见下面两个帖子,较详细:
python基础——编码、bytes与str转换及格式化 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:
最常用的编码是UTF-8,如果没有特殊业务要求,请牢记仅使用UTF-8编码 。
在爬虫中会经常遇见,需要用encode和decode来进行互相转码
str转bytes
注意,含有中文字符的str不能用acsii格式转码
bytes转str
** 程序中经常会遇到个别字符转码不成功而报错,因此在decode方法中需要这个参数errors='ignore'忽略错误的字节
注意格式化的数据格式
python 如何将字符串是"\x73\x65\x74"(它的类型是字符串str),解析为正常能看得懂的字符串str = ’0123456789′
print str[0:3] #截取第一位到第三位的字符
print str[:] #截取字符串的全部字符
print str[6:] #截取第七个字符到结尾
print str[:-3] #截取从头开始到倒数第三个字符之前
print str[2] #截取第三个字符
print str[-1] #截取倒数第一个字符
print str[::-1] #创造一个与原字符串顺序相反的字符串
print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符
print str[-3:] #截取倒数第三位到结尾
如何入门 Python 爬虫爬虫我也是接触了1个月,从python小白到现在破译各种反爬虫机制,我给你说说我的方向:
1、学习使用解析网页的函数,例如:
import urllib.request
if __name__ == '__main__':
url = "..."
data = https://www.04ip.com/post/urllib.request.urlopen(url).read()#urllib.request.urlopen(需要解析的网址)
data = https://www.04ip.com/post/data.decode('unicode_escape','ignore') #用unicode_escape方式解码
print(data)
2、学习正则表达式:
正则表达式的符号意义在下面 , 而正则表达式是为了筛选出上面data中的信息出来 , 例如:
def get_all(data):
reg = r'(search. )(" )(mars_sead=". title=")(. )(" data-id=")'
all = re.compile(reg);
alllist = re.findall(all, data)
return alllist
3、将得到的结果压进数组:
if __name__ == '__main__':
info = []
info.append(get_all(data))
4、将数组写进excel:
import xlsxwriter
if __name__ == '__main__':
info = []
info.append(get_all(data))
workbook = xlsxwriter.Workbook('C:\\Users\\Administrator\\Desktop\\什么文件名.xlsx')# 创建一个Excel文件
worksheet = workbook.add_worksheet()# 创建一个工作表对象
for i in range(0,len(info)):
worksheet.write(行, 列, info[i], font)#逐行逐列写入info[i]
workbook.close()#关闭excel
一个简单的爬虫搞定,爬虫的进阶不教了,你还没接触过更加看不懂
关于python爬虫函数解码和爬虫解码的所有方法的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读