저는 지금 당분간이 문제에 시달리고 있습니다. 다음 코드 스 니펫은 일부 웹 사이트의 경우 문자셋이 헤더 메타에 표시 되더라도 None
을 반환하므로 웹 페이지의 적절한 문자 집합을 가져 오는 안정적인 방법이 아닌 것 같습니다.urllib2 getparam charset는 일부 사이트에 대해 None을 반환합니다.
conn = urllib2.urlopen(req)
charset = conn.headers.getparam('charset')
나는 SO 여기에 여러 스레드를 읽고 일부는 chardet
를 사용하는 언급하지만 가능하면 추가 모듈을 가져 오지 않습니다. 대신 머리글 만 다운로드하고 일부 문자열 함수를 사용하여 charset 정보를 얻으려고합니다.
누구에게 더 좋은 아이디어가 있습니까?
감사합니다. 난 그냥 페이지의 헤더를 확인하고 그것은 전혀 문자 세트를 포함하지 않습니다. – g0m3z
누군가 내 솔루션에 관심이 있다면 여기에 붙여 넣으십시오. 정보를 얻기 위해'lxml' 모듈의'cssselect'를 사용합니다 :'charset = site.cssselect ('meta [http-equiv = "Content-Type"]') [0] .get ('content'). split ("charset =", 1) [1]' – g0m3z
@ g0m3z : 자신의 답변으로 게시해야합니다. 왜 html을 이미 완전히 파싱 한 후에 * 문자 인코딩이 필요한가요? 답에서 제공 한 [link] (http://stackoverflow.com/a/15305248/4279)에 따라 인코딩 처리 방법을 확인하십시오. – jfs