Python3的urllib模塊基本使用及編碼問題解決方法
打開Python開發(fā)工具并新建文件首先,打開Python開發(fā)工具IDLE,并新建一個(gè)名為``的文件。在文件中寫入以下代碼:```pythonimport url ''b (url)print(t
打開Python開發(fā)工具并新建文件
首先,打開Python開發(fā)工具IDLE,并新建一個(gè)名為``的文件。在文件中寫入以下代碼:
```python
import
url ''
b (url)
print(type(()))
```
運(yùn)行代碼并處理返回結(jié)果
運(yùn)行上述代碼后,Shell將會打印出一段內(nèi)容,說明`urlopen`返回的對象通過`read`函數(shù)返回的是bytes類型數(shù)據(jù)。如果直接打印出`read`的內(nèi)容,可能會出現(xiàn)亂碼。為了解決這個(gè)問題,可以修改代碼如下:
```python
import
url ''
b (url)
print(())
```
運(yùn)行代碼后,將看到以`b`開頭的輸出代表bytes類型數(shù)據(jù)。
解碼bytes類型數(shù)據(jù)為str類型
為了正常顯示內(nèi)容,需要將bytes類型數(shù)據(jù)解碼為str類型。修改代碼如下:
```python
import
url ''
b (url)
s ().decode('utf-8')
print(type(s))
print(s)
```
運(yùn)行代碼后,就可以正常顯示內(nèi)容了。
使用chardet檢測編碼方式
如果不事先知道編碼方式,可以使用`chardet`庫進(jìn)行檢測。修改代碼如下:
```python
import
import chardet
url ''
b (url).read()
encode (b)
s (encode['encoding'])
print(type(s))
print(s)
```
運(yùn)行代碼后,解碼后的數(shù)據(jù)將可以正常輸出顯示。如果需要提取特定內(nèi)容,可以將解碼后的數(shù)據(jù)傳遞給BeautifulSoup等工具進(jìn)行進(jìn)一步提取。