>  기사  >  웹 프론트엔드  >  phantomjs_javascript 기술을 사용한 웹 스크래핑 구현 코드

phantomjs_javascript 기술을 사용한 웹 스크래핑 구현 코드

WBOY
WBOY원래의
2016-05-16 16:35:001295검색

phantomjs는 js를 실행할 수 있는 헤드리스 브라우저이기 때문에 웹 크롤링에 적합한 dom 노드도 실행할 수 있습니다.

예를 들어 웹페이지의 '오늘의 역사' 콘텐츠를 일괄 크롤링하려고 합니다. 홈페이지

dom 구조를 관찰하면 .list li a의 제목 값만 얻으면 됩니다. 그래서 우리는 고급 선택기를 사용하여 DOM 조각을 만듭니다

var d= ''
var c = document.querySelectorAll('.list li a')
var l = c.length;
for(var i =0;i<l;i++){
d=d+c[i].title+'\n'
}

이후에는 phantomjs에서 js 코드를 실행시키기만 하면 됩니다~

var page = require('webpage').create();
	page.open('http://www.todayonhistory.com/', function (status) { //打开页面
		if (status !== 'success') {
			console.log('FAIL to load the address');
		} else {
			console.log(page.evaluate(function () {
					var d= ''
					var c = document.querySelectorAll('.list li a')
					var l = c.length;
					for(var i =0;i<l;i++){
					d=d+c[i].title+'\n'
					}
						return d
				}))

		}
		phantom.exit();
	});

마지막으로 catch.js로 저장하고 dos에서 실행한 후 내용을 txt 파일로 출력합니다. (phantomjs의 파일 api를 사용해 작성할 수도 있습니다)

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.