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>/"
;
편집기에 표시되는 내용(스크린샷):
이렇게 복잡한 이유는 콘텐츠의 일부를 얻고 싶기 때문입니다.
여기서 핵심이 나옵니다. 너무 복잡해서 제가 원하는 내용을 정확하게 캡처할 수 있도록 정규식을 디버깅하는 것이 불가능합니다. 이렇게 복잡한 정규식을 작성하고 데이터를 캡처할 수 있을 때까지 디버깅하는 방법을 알려주실 수 있나요? 당신이 원하는? ?
symfony/dom-crawler 방법을 다시 사용할 차례입니다. DOM Dafa는 좋습니다. 규칙에서 벗어나면 안전할 것입니다
composer.json
으아악a.php
으아악출력
DOM은 당연히 더 나은 선택이지만 일반적인 방법으로 수행하는 것이 반드시 불가능한 것은 아닙니다.
으아아아