亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 DOMXpath 從 PHP 頁面中捕獲所有團隊名稱

使用 DOMXpath 從 PHP 頁面中捕獲所有團隊名稱

PHP
慕桂英546537 2021-08-28 10:03:57
我想從此頁面中提取所有團隊名稱和鏈接: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 作為值。


查看完整回答
反對 回復 2021-08-28
  • 1 回答
  • 0 關注
  • 118 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號