문제 설명
PHP를 사용하여 웹 사이트에서 클래스 이름 스크래핑 (Scraping class name on a website using php)
그래서 웹사이트에서 클래스 이름을 스크레이핑하고 싶습니다. html 코드 소스는 다음과 같습니다.
<td title="Complexity" class="cvss6" itemscope itemtype="http://schema.org/Rating">
"cvss6" 다음과 같이 시도했습니다.
$nilai1 = explode('<td title="Complexity" class="', $kodeHTML);
$nilai_show2 = explode('" itemscope="', $nilai1[1]);echo "
<tr><td width='85%' align='left' bgcolor='#F5F5F5'>".$judul_show[0]."</td>";
if($nilai_show2[0] == 'cvss6') {
echo "<td width='15%' align='center' bgcolor='#FF0000'>High</td></tr>";
}
하지만 작동하지 않고 내 사이트에 아무 것도 표시되지 않습니다. html 일반 텍스트를 스크레이핑했습니다. 하지만 클래스 이름 안에 있는 텍스트를 어떻게 스크레이핑합니까? 감사합니다
참조 솔루션
방법 1:
To answer your question you could use regular expression to find what you need, with code below we try to find term that expect class="something" with multiline flag (https://www.php.net/manual/fr/function.preg‑match‑all.php) :
preg_match_all(
'/class="(.+?)"/m',
'<b>exemple : </b><div class="test test1 test2 test3" align=left>This is a test</div class="t1 t2">',
$out
);
var_dump($out[1]);
/* output
array(2) {
[0]=>
string(22) "test test1 test2 test3"
[1]=>
string(5) "t1 t2"
}
*/
Also i advice you to use an library to crawl web page with php.
https://symfony.com/doc/current/components/dom_crawler.html
(by lountee ngemut、Lounis)