Python徹底解決採集網頁亂碼問題

2021-07-27 18:12:55 字數 1134 閱讀 6241

python徹底解決網頁採集亂碼問題,準確率 99%

def

download_page

(indexurl, timeout=10):

""" :param indexurl:

:param timeout:

:return:

"""try:

res = urllib2.urlopen(indexurl, timeout=timeout)

code = res.getcode()

info = res.info()

charset = none

if info:

m = re.findall(r'charset=([a-za-z0-9_-]+)', ' '.join(info.headers), re.i)

if m:

charset = str(m[0]).lower()

if code == 200:

html = res.read()

ifnot charset and html:

charset = pick_charset(html)

# 如果完全採不到 charset,預設使用 gbk 反正都是亂碼

ifnot charset or charset == "gb2312":

charset = 'gbk'

if charset and charset != 'utf-8':

try:

html = html.decode(charset).encode('utf-8')

except:

pass

else:

html = ''

return (code,

res.geturl(),

charset,

html

)except urllib2.urlerror, e:

return str("%r" % e)

except socket.timeout, e:

return str("%r" % e)

except:

return str(sys.exc_info())

注意引入必要的包,如果有不足的地方,歡迎指正。

教你如何徹底解決網頁中文亂碼

一般來說,做好兩件事就可以防止亂碼了 就是在頁面中明確宣告網頁的編碼 php頁面 header content type text html charset utf 8 html頁面 儲存頁面檔案的時候勾選為 utf 8 編碼的格式 做好這兩步,基本上可以解決大部分的編碼問題 現在我們說說特殊情況 ...

徹底解決 OBJC CLASS

最近在使用靜態庫時,總是出現這個問題。下面總結一下我得解決方法 1.m檔案沒有匯入 在build phases裡的compile sources 中新增報錯的檔案 2.framework檔案沒有匯入 靜態庫編譯時往往需要一些庫的支援,檢視你是否有沒有匯入的庫檔案 同樣是在build phases裡的...

徹底解決INSTALL FAILED UPDATE

按ctrl c退出系統,利用adb pull data system packages.xml命令將packages.xml放到你pc機本地,然後找到你需要的包名,刪除到的一段資料。例如 儲存packages.xml,然後adb push packages.xml data system將packa...