snoopy 정규식질문 채택완료
JUNOSKIN
7년 전
조회 1,786
<div class="info">
<p class="rating">1551<span>상위 12.3501%</span></p>
변수에 1551이라는 숫자를 넣어 불러오는 하드코딩이아닌 고정값이아닌 동기화마다 바뀌는값을 자동으로 크롤링해서 mysql 로 올리고싶습니다.
위 태그처럼 어느 특정 홈페이지에서 1551 이라는 숫자를 실시간으로 크롤링하여 db로 넣으녀는 작업을 하고있습니다.
근데
include_once 'Snoopy.class.php';
$snoopy=new snoopy;
$o="";
$snoopy->fetch("http://stock.daum.net/item/main.daum?code=002200">http://링크");
$txt=$snoopy->results;
$rex="/\<p class=\"rating.+\"\>(.*)\<\/p\>/";
preg_match_all($rex,$txt,$o);
print_r($o[0][0]);
이렇게했는데 결과값이 불러지지않더라구요 무엇이 잘못되엇는지 도무지 알수가없어서 이렇게 질문올립니다
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
7년 전
정규식을 아래와 같이 바꿔 보시겠어요?
</p>
<p><p\s+class="rating">([^<]+)<span></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 4개
J
JUNOSKIN
7년 전
Parse error: syntax error, unexpected 'rating' (T_STRING) in 라는 오류가 나네요...
w
whitecatz
7년 전
혹시나 해서 적다 말았는데..
rating의 좌우 쌍따옴표는 escape처리를 하셨나요??
rating의 좌우 쌍따옴표는 escape처리를 하셨나요??
J
JUNOSKIN
7년 전
무슨말씀이신지 잘모르겟네요..
w
whitecatz
7년 전
샘플코드 입니다.
[code]
$str = "<p class=\"rating\">1551<span>상위 12.3501%</span></p>";
preg_match_all("/<p\s+class=\"rating\">([^<]+)<span>/",$str,$o);
print_r($o);
[/code]
[code]
$str = "<p class=\"rating\">1551<span>상위 12.3501%</span></p>";
preg_match_all("/<p\s+class=\"rating\">([^<]+)<span>/",$str,$o);
print_r($o);
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인