Php 如何显示网站';在我自己的网站上有什么主页?
我正试图创建一个投资组合网站,以展示我作为网络开发人员的才能,并招揽一些额外的自由职业者客户。为此,我希望有一个iFrame的引导旋转木马,显示我以前工作过的站点的主页 这样做的问题是,外部站点严格遵守同一原产地政策,同时也缺乏任何类型的CORS支持。我不再有能力改变这一点,因为我不再为维护这些网站的Web开发公司工作,所以什么是完成这项任务的最佳方式(最好是在PHP或AJAX中,但我愿意考虑任何工作方式)? 我曾尝试使用wget/cURL下载站点的本地副本,但需要下载的相关图像、CSS文件等乱七八糟的内容不仅让人头疼,而且下载也需要约2分钟的时间Php 如何显示网站';在我自己的网站上有什么主页?,php,ajax,wget,same-origin-policy,php-curl,Php,Ajax,Wget,Same Origin Policy,Php Curl,我正试图创建一个投资组合网站,以展示我作为网络开发人员的才能,并招揽一些额外的自由职业者客户。为此,我希望有一个iFrame的引导旋转木马,显示我以前工作过的站点的主页 这样做的问题是,外部站点严格遵守同一原产地政策,同时也缺乏任何类型的CORS支持。我不再有能力改变这一点,因为我不再为维护这些网站的Web开发公司工作,所以什么是完成这项任务的最佳方式(最好是在PHP或AJAX中,但我愿意考虑任何工作方式)? 我曾尝试使用wget/cURL下载站点的本地副本,但需要下载的相关图像、CSS文件等乱
外部页面还包含许多指向这些资源的相对路径,为了正常工作,这些路径需要设置为绝对路径或指向资源的本地副本。这已经成为一项比最初预期的更大的任务,我几乎准备完全忘记整个概念。因此,我也愿意接受任何关于如何宣传我以前的工作并向潜在新客户展示我的技能的建议。MTIA:-)正如@thebjorn在上面的评论中所建议的,解决方案是Selenium WebDriver。但要让它完全工作起来相当棘手,因此对于将来遇到这种情况的任何人来说,我最终是如何做到这一点的:
Java-jar selenium server standalone-.jar
运行它use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
// Ignore this line if you aren't using composer
require_once('../vendor/autoload.php');
function getSiteSnapshot($siteUrl, $siteName) {
$snapshot = __DIR__ . "/images/$siteName.png";
$oneWeek = 604800;
$lastModTime = !file_exists($snapshot) ? null : filemtime($snapshot);
if ($lastModTime === null || $lastModTime < time() - $oneWeek) {
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
$driver->get($siteUrl);
$driver->takeScreenshot($snapshot);
}
return $snapshot;
}
使用Facebook\WebDriver\Remote\desired功能;
使用Facebook\WebDriver\Remote\RemoteWebDriver;
//如果不使用composer,请忽略此行
需要_once('../vendor/autoload.php');
函数getSiteSnapshot($siteUrl,$siteName){
$snapshot=\uuuuu DIR\uuuu.“/images/$siteName.png”;
一周$604800;
$lastModTime=!file_exists($snapshot)?null:filemtime($snapshot);
如果($lastModTime==null | |$lastModTime
希望这能帮助像我这样的noob习惯使用这个非常强大的web测试框架!干杯!:-) 你有没有考虑过一个旋转的屏幕截图,可能是其他网站的链接…?@thebjorn-Yeah刚刚开始研究URL2PN,但它非常昂贵。你知道有什么免费的选择吗?顺便说一句,谢谢你的建议:)没关系,他们实际上在自己的网站上提供了竞争对手的短名单!Selenium可以拍摄屏幕截图(这里有许多语言的示例代码,包括php),对不起,没有使用php进行任何严肃的操作。查看Python示例。(我假设您将有一个cron作业或类似作业,它在请求/响应周期之外生成图像)。