我想從此頁面中提取所有團隊名稱和鏈接:https://www.transfermarkt.fr/ligue-1/startseite/wettbewerb/FR1我正在使用DOMXpath來匹配元素,但使用以下代碼它不會返回任何內容。function get_data($url) { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($ch); curl_close($ch); return $data;}$url = 'https://www.transfermarkt.fr/ligue-1/startseite/wettbewerb/FR1';$html = get_data($url);$dom = new DOMDocument();$dom->loadHTML($html);$xpath = new DOMXpath($dom);foreach($xpath->query('//*[contains(concat( " ", @class, " " ), concat( " ", "hide-for-pad", " " ))]//*[contains(concat( " ", @class, " " ), concat( " ", "tooltipstered", " " ))]') as $v) { echo $v->getAttribute("href") . PHP_EOL;}請問你知道為什么嗎?
1 回答

MYYA
TA貢獻1868條經驗 獲得超4個贊
有時,一旦頁面被加載,HTML 就會被 Javascript 改變。我看過頁面,我認為您應該能夠從以下內容中獲取詳細信息(請檢查顯示的 URL 是否正確)...
$teams = $xpath->query('//td[@class="zentriert no-border-rechts"]/a[contains(concat( " ", @class, " " ), concat( " ", "vereinprofil_tooltip", " " ))]');
foreach($teams as $v) {
echo $v->getAttribute("href") . " - ";
echo $v->firstChild->getAttribute("alt").PHP_EOL;
}
這可能會產生重復,因此可能會像這樣創建團隊和 URL 的列表......
$teams = [];
foreach($teams as $v) {
$teams[$v->firstChild->getAttribute("alt")] = $v->getAttribute("href");
}
這將為您提供團隊名稱列表(作為鍵)和 URL 作為值。
- 1 回答
- 0 關注
- 118 瀏覽
添加回答
舉報
0/150
提交
取消