[英]Python - scraping website with unicode
我正在嘗試使用此代碼抓取網站
#!/usr/bin/python
#coding = utf-8
import urllib, urllib2
req = urllib2.Request(‘http://some website’)
req.add_header('User-agent' : 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
f = urllib2.urlopen(req)
body = f.read()
f.close()
這是read()方法返回的文檔的一部分
T\u00f3m l\u01b0\u1ee3c di\u1ec5n ti\u1ebfn Th\u01b0\u1ee3ng H\u1ed9i \u0110\u1ed3ng Gi\u00e1m M\u1ee5c v\u1ec1 Gia \u0110\u00ecnh\
我如何更改上面的代碼以獲得這樣的結果?
Tóm lược diễn tiến Thượng Hội Đồng Giám Mục về Gia Đình
謝謝。
我的問題是通過使用mata的建議解決的。 這里的代碼對我有用。 謝謝大家的幫助,尤其是mata。
#!/usr/bin/python
#coding = utf-8
import urllib, urllib2
req = urllib2.Request(‘http://some website’)
req.add_header('User-agent' : 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
f = urllib2.urlopen(req)
body = f.read().decode('unicode-escape').encode('utf-8')
f.close()
您需要檢測頁面的編碼並將其解碼,請嘗試使用此lib進行編碼檢測http://github.com/chardet/chardet,其用法幫助和示例位於http://chardet.readthedocs.org/en /latest/usage.html
pip install chardet
然后用它
import urllib, urllib2
import chardet #<- import this lib
req = urllib2.Request(‘http://some website’)
req.add_header('User-agent' : 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
f = urllib2.urlopen(req)
body = f.read()
f.close()
code = chardet.detect(body) #<- detect the encoding
body = body.decode(code['encoding']) #<- decode
您必須從頁面檢測編碼。 在大多數情況下,此信息位於請求的標頭中。
#!/usr/bin/python
#coding = utf-8
import cgi
import urllib2
req = urllib2.Request("http://some website")
req.add_header("User-agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36")
f = urllib2.urlopen(req)
encoding = f.headers.getparam('charset') # Here, you will detect the page encoding
body = f.read().decode(encoding) # Here you will define which encode use to decode data.
f.close()
還有其他方法可以獲得相同的結果,但是我只是適應了您的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.