아래 코드를 사용하여 웹 페이지에서 URL을 추출하고 잘 작동하지만 필터링하고 싶습니다. 해당 페이지의 모든 URL을 표시하지만 "super"라는 단어로 구성된 URL 만 원합니다.
$regex='|<a.*?href="(.*?)"|';
preg_match_all($regex,$result,$parts);
$links=$parts[1];
foreach($links as $link){
echo $link."<br>";
}
따라서 super라는 단어가있는 uls 만 에코해야합니다. 예를 들어 URL을 무시해야합니다.
http://xyz.com/abc.html
그러나 그것은 에코되어야한다
http://abc.superpower.com/hddll.html
URL에 super라는 필수 단어로 구성되어 있으므로
정규식을 탐욕스럽지 않게 만드십시오.
$regex = '|<a.*?href="(.*?super[^"]*)"|is';
그러나 HTML을 구문 분석하고 스크랩하려면 PHP의 DOM 구문 분석기를 사용하는 것이 좋습니다.
$request_url ='1900girls.blogspot.in/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($result); // loads your html
$xpath = new DOMXPath($doc);
$needle = 'blog';
$nodelist = $xpath->query("//a[contains(@href, '" . $needle . "')]");
for($i=0; $i < $nodelist->length; $i++) {
$node = $nodelist->item($i);
echo $node->getAttribute('href') . "\n";
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다