Node.js가 utf-8이 아닌 중국어 웹 페이지를 크롤링하면 잘못된 문자가 나타납니다. 예를 들어 NetEase의 홈페이지 인코딩은 gb2312이고 크롤링할 때 잘못된 문자가 나타납니다.
request(url, function (err, res, body) {
console.log(본문)
})
설치
var 옵션 = {
url: url,
인코딩: null,
헤더:헤더
}
OriginRequest(옵션, 콜백)
}
var html = iconv.decode(body, 'gb2312')
console.log(html)
})
깨진 코드 문제 해결
cherio를 사용하여 HTML 구문 분석
cheerio 는 간단하고 대략적으로 서버 측 jQuery 선택기로 이해될 수 있으며 이를 사용하면 정규 표현식보다 훨씬 직관적입니다
설치
cherio .html()의 "깨진" 문제 해결
엔터티 인코딩 변환 기능을 끌 수 있는지 문서를 확인하세요
함수 요청(URL, 콜백) {
var 옵션 = {
url: url,
인코딩: null,
헤더:헤더
}
OriginRequest(옵션, 콜백)
}
var url = 'http://www.163.com'
request(url, function (err, res, body) {
var html = iconv.decode(body, 'gb2312')
var $ = cheatio.load(html, {decodeEntities: false})
console.log($('h1').text())
console.log($('h1').html())
})