我有数百个网站需要搜索电话号码,我想使用 PHP 来搜索我,如果我能弄清楚如何抓取网页并将该页面的整个 html 设置为变量,我可以编写一个遍历所有网站并搜索我需要找到的字符串的脚本。
我可以用 php 做什么,这样我就可以使用
echo $url
我会看到网站的 html 代码,而不是呈现的页面?
当我执行时,我用 curl 尝试过的所有东西都会渲染页面。谢谢!
htmlspecialchars($data);
从文档:
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
至于在变量中搜索($new
在这种情况下),您应该使用正则表达式。但要小心,将 html 显示为标记而不是呈现它,将在网站上显示代码,但您不需要这样做以在字符串中搜索。
curl
在orfile_get_contents
方法之后,字符串(源)非常好。
此外,在解析 html 时,我发现PHP Simple HTML DOM 解析器提供了令人难以置信的选择器和许多实用程序,根据您的情况可能会更好。
您可以使用 htmlentities 函数htmlentities函数将 html 标签转换为文本。
echo htmlentities($page_content);
您可以使用PHP 中的 file() 函数来获取原始 HTML。他们甚至在第一个例子中证明了这一点。
这个链接有一个很好的例子:
/* gets the data from a URL */
function get_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$returned_content = get_data('http://stackoverflow.com');
然后,您可以使用 regex on$returned_content
来查找您要查找的字符串。