php - 크롤러가 필요한 데이터를 캡처하는 일반적인 규칙을 볼 수 있도록 도와주실 수 있나요?
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 13:16:30
0
2
629

A. html크롤링할 페이지:

으아악

B. 내가 작성한 크롤링 정규식:

으아악

$reg_list = "/<ps*topClassName='top1's*topSwitch='on's*productId='(d+)'s*productName='[x7f-xff]+'s*class='productPicListForm's*id='[A-z0-9]+'s*faiWidth='d+'s*faiHeight='d+'s*faiWidthOr='d+'s*faiHeightOr='d+'>s*<tables*id='w+'s*class='formTable's*cellpadding='d*'s*cellspacing='d+'>s*<tr>s*<tds*class='imgp'>s*<tables*cellpadding='d+'s*cellspacing='d+'>s*<tr>s*<td>s*<as*hidefocus='true's*href='[A-z0-9. -_]+'s*target='(_blank|_self)'>s*<imgs*alt='([x7f-xff]+)'s*title='[x7f-xffA-z0-9-]*'s*src='((http|https)://[A-z0-9./!-]+)'s*/>s*</a>s*</td>s*</tr>s*</table>s*</td>s*<tds*style='[A-z0-9:-_#]*'s*class='propList'>s*<tds*style='[A-z0-9:-_#]*'s*class='propList'>s*<p style='[A-z0-9:-_#]*' class='propps*productNames*'>s*<as*class='fk-productName's*hidefocus='true's*href='([A-z0-9-._]+)'s*target='(_blank|_self)'s*title='[x7f-xff]+'>[x7f-xff]+</a>s*</p>s*<ps*class='propps*productPropd*s*'>s*<spans*class='propNames*fk-prop-name'>主营:</span>s*<spans*class='propValues*fk-prop-other's*style='[A-z0-9x7f-xff: -_#;]*'>([x7f-xff ]+_-.)</span>s*</p>s*<ps*class='propps*productProp4s*'>s*<spans*class='propNames*fk-prop-name'>地址:</span>s*<spans*class='propValues*fk-prop-other's*style='[A-z0-9x7f-xff: -_#;]*'>([x7f-xff -_.]+)</span>s*</p>s*</td>s*</td>s*</tr>s*</table>s*</p>/";

편집기에 표시되는 내용(스크린샷):

이렇게 복잡한 이유는 콘텐츠의 일부를 얻고 싶기 때문입니다.

여기서 핵심이 나옵니다. 너무 복잡해서 제가 원하는 내용을 정확하게 캡처할 수 있도록 정규식을 디버깅하는 것이 불가능합니다. 이렇게 복잡한 정규식을 작성하고 데이터를 캡처할 수 있을 때까지 디버깅하는 방법을 알려주실 수 있나요? 당신이 원하는? ?

过去多啦不再A梦
过去多啦不再A梦

모든 응답(2)
黄舟

symfony/dom-crawler 방법을 다시 사용할 차례입니다. DOM Dafa는 좋습니다. 규칙에서 벗어나면 안전할 것입니다

composer.json

으아악

a.php

으아악

출력

巴扎黑

DOM은 당연히 더 나은 선택이지만 일반적인 방법으로 수행하는 것이 반드시 불가능한 것은 아닙니다.

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿