我正在编写一个 PHP 抓取程序。该程序对我来说运行顺利,但我发现抓取结果与我的预期略有不同。
这是我的脚本
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $eng_SCCW_array["Here is my website"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
$doc = new DOMDocument();
@ $doc->loadHTML($html);
$elements_content = $doc->textContent;
echo $elements_content."</br>"."</br>";
问题是,由于脚本不会读取任何“br”,因此丢失了一些空格。但是,这会让之后的数据处理变得非常复杂。我想分割抓取结果,如下图所示。但我该怎么做呢?
首先检查您是否获得任何可以创建循环并在其之间添加换行符的标签或元素(如
等)。 现在您可能会以文本形式获取整个 DOM。
$elements_content = $doc->textContent;
上面将为您提供整个 DOM 作为文本 像这样https://prnt.sc/-oPTh0o7oXk_参见屏幕截图
你需要找到标签并在循环的帮助下添加 br
$elements = $doc->getElementsByTagName('a');
foreach($elements as $element) {
echo $element->nodeValue . '</br>';
}
如果您可以分享您收到回复的 URL。我将检查响应类型并尝试在其间添加换行符