정규식은 힘들군요 채택완료

Copy
<li id="room-e2f9afe08054da8141c921f3194aaa12" data-trate="2.65" data-prate="2.1" data-nrate="2.55" data-recomcnt="33" data-curuser="26" data-time="1593938049">

   <div class="thumb red"><img src="https://sfile.powerballgame.co.kr/profileImg/66f4f115a64a31e4f71c7955b768c6a0.gif?1589995072" class="roomImg"/><div class="winFixCnt">8</div></div>

   <이하 생략>....

안녕하세요. 

스누피로 크롤링 하는거 해보려고 하는데요..

찾아보면...

preg_match('~<html>[{"(.*?)', $snoopy->results, $text); //preg_match 정규식을 사용해서 필요한 요소만을 추출한다고 합니다. 라고 해요...

예를 들면 이런식..$rex="/\<em class=\"curPrice.+\"\>(.*)\<\/em\>/";

구글링 해봐도 제가 알고 싶은게 없어서요...

예문에 보면../,\ 이런것들이 들어가는데 따로 규칙이 있는건가요? 어느요소에 저걸 작성해야 하는건가요? ^^;; (좀 질문이 이상한뎅)

위 소스 에서 제가 가져오려는 값이

e2f9afe08054da8141c921f3194aaa12

https://sfile.powerballgame.co.kr/profileImg/66f4f115a64a31e4f71c7955b768c6a0.gif?1589995072

8

이렇게 3가지 인데요. 저 3가지 란에 (.*) 를 쓰는거 같고...나머지 부분에는 다 /\ 이런거 다 넣음 되는줄 알았는데...안되 더라구요.

저 3가지 찾고자 하는값을 정규식을 이용해서 추출하면 된다는....모든 구글링의 동일한 답변인데...

어떤 규칙이 필요한건지요...도와주세요~~ㅜㅜ

답변 3개

채택된 답변
+20 포인트

정규식의 공부는 https://regex101.com/ 여기를 통해서 하시면 됩니다.

우의 예시에 나온 정규식으로 테스트해 보겠습니다.

Copy
/\<em class=\"curPrice.+\"\>(.*)\<\/em\>/

이 문장을 regex101.com 에 넣으면 각각에 대한 설명이 나오니 참조하시고

이것에 매칭되는 html이 아래라고 하면

Copy
<em class="curPriceApple">100.00</em>
 

(.*) 이 Group1을 나타내는데..  가격을 가져 온다고 생각하시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

오 좋은 사이트내요...정말 좋은 정보 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

스누피라는 것을 써 본적은 없습니다만,

길고 긴 HTML 문자열에서 정규식만으로 찾아낸다는 것이 쉬운 일은 아닌  것 같아서요.

스크래핑(요즘엔 웹크롤링이라고도 하지만)기술이라는 것이

길고 긴 문자열에서 원하는 것만 찝어내는것이고,

파이선의 뷰티플숲과 같은 PHP 라이브러리를 찾는 것은 어떨런지요.

php web scraping selector  ==> 이렇게 구글링을 하였고...

https://dev.to/sayopaul/web-scraping-in-php-using-goutte--4p6h

이런 블로그가 나오네요...

    $crawler = $crawler->filter('body > p');

이렇게 selector를 이용하여 찾아낸다면 더 정확한 값을 찾으실 수 있지 않을까요?

저라면... 정규식으로 안하고 selector로 할 것 같아서 답변 남겨봅니다.

https://github.com/FriendsOfPHP/Goutte

음... 괜찬은 라이브러리인듯요... 더 구글링해보면 더 좋은 것들도 있겠죠?

(해보진 않았어요~~~)

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

파이썬이 쉽다던데...파이썬을 봐야 할까요? 답변 정말 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

정규식은 따로 문법이 존재하며 해당 문법에 맞게 작성하시면 되고 복잡하여 그걸 외우고 쓰는 사람은 거의 없습니다.
필요할 때 문서를 보고 작성하는 경우가 대부분입니다.
문법의 경우 인터넷에서 검색만 해도 쉽게 나옵니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아 따로 문법같은게 있는게 아니었군요..감사합니다. ^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고