1、requests类
requests类默认的.text是字符串格式,并且已经默认了编码格式,改变编码则是.content.decode(''),即先得到bytes类,再编码转为字符串
import requests
resp =requests.get("https://www.baidu.com")
print(type(resp.content))
print(type(resp.text))
print(type(resp.content.decode('utf-8')))
print(type(resp.text.encode('utf-8')))
结果
<class 'bytes'>
<class 'str'>
<class 'str'>
<class 'bytes'>
2、urlrequest类
urlrequest类一定要用read()表示网页内容,并且是一个bytes类。
from urllib import request
resp =request.urlopen("https://www.baidu.com")
print(type(resp.read()))
print(type(resp.read().decode('utf-8')))
<class 'bytes'>
<class 'str'>
3、selenium方式打开
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
print(type(driver.page_source.encode('utf-8')))
print(type(driver.page_source.encode('utf-8').decode('utf-8')))
print(type(driver.page_source))
<class 'bytes'>
<class 'str'>
<class 'str'>
4、总结
注意区分各种形式打开网页得到数据的方法和类型
并且注意str和bytes类型之间的变化
str------encode()-----bytes
bytes------decode()-------str
网友评论