python网络爬虫二(编码/解码问题)

使用两种方法解决有关网络爬数据时遇到的编码/解码问题

# -*- coding:utf-8 -*-
import requests
import chardet
r = requests.get('http://www.baidu.com/')  #通过requests获取浏览器返回的对象
print(type(r))   #
#预先获取对象的编码方式使用chardet
code = chardet.detect(r.content)['encoding']
print(type(r.text))   #   当访问 r.text 时,Requests 会使用其推测的文本编码
print(type(r.content))   #
print(code)   #utf-8
#方法一:
html = r.content.decode(code)  #str类型
print(html)
#方法二:
#使用r.encoding 属性来改变r.text编码方式
r.encoding = code
html2 = r.text   #str类型

例如从51job网站爬取人工智能职位信息时遇到解码编码问题解决办法

# -*- coding:utf-8 -*-
import requests
import chardet

url = 'https://search.51job.com/list/040000,000000,0000,00,9,99,python,2,1.html?lang=c&stype=&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&providesalary=99&lonlat=0%2C0&radius=-1&ord_field=0&confirmdate=9&fromType=&dibiaoid=0&address=&line=&specialarea=00&from=&welfare='
r = requests.get(url)
code = chardet.detect(r.content)['encoding']
print(code)   #GB2312
r.encoding = code
print(r.text)
#方法二:
print(r.content.decode(code))

你可能感兴趣的:(python网络爬虫二(编码/解码问题))