Php 如何使用Ipad的用户代理刮取网站?

Php 如何使用Ipad的用户代理刮取网站?,php,ipad,curl,user-agent,scrape,Php,Ipad,Curl,User Agent,Scrape,如何使用Ipad的用户代理刮取网站 下面的代码使用PHP中的curl,它输出源代码,但仍然找不到标记。在使用Ipad用户代理的Ipad或Safari浏览器上,加载站点时会显示标签 谢谢 <?php $useragent= "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari

如何使用Ipad的用户代理刮取网站

下面的代码使用PHP中的curl,它输出源代码,但仍然找不到标记。在使用Ipad用户代理的Ipad或Safari浏览器上,加载站点时会显示标签

谢谢

<?php
    $useragent= "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10')";

    $ch = curl_init ("http://www.cbsnews.com/video/watch/?id=7370279n&tag=mg;mostpopvideo");

    curl_setopt ($ch, CURLOPT_USERAGENT, $useragent); // set user agent
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    // curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    echo $output = curl_exec ($ch);

    curl_close($ch);
?>

尝试从命令行使用curl,并使用以下perl脚本:

my $ua = "Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10";
my $curl = "curl -A '$ua'";
my $server = "http://www.cbsnews.com";
my $startpage = "$server/video/watch/?id=7370279n&tag=mg;mostpopvideo";
my $path = "/path/to/download/to";
open(f, "$curl -L $startpage |") or die "Cannot open website: $!";
while (<f>)
{
    if (/<a\s+[^>]*href=\"$server\/([^\"\/])*\"/)
    {
        my $file = $2;
        system("$curl -e $startpage $server/$file > $path/$file");
        next;
    }

    if (/<a\s+[^>]*href=\"$server\/([^\"]+)\/([^\"\/])*\"/)
    {
        my $folder = $1;
        my $file = "$folder/$2";
        system("mkdir -p $path/$folder");
        system("$curl -e $startpage $server/$file > $path/$file");
        next;
    }
}
close(f);
my$ua=“Mozilla/5.0(iPad;U;CPU OS 3_2,如Mac OS X;en-us)AppleWebKit/531.21.10(KHTML,如Gecko)版本/4.0.4 Mobile/7B33B Safari/531.21.10”;
my$curl=“curl-A'$ua'”;
我的$server=”http://www.cbsnews.com";
my$startpage=“$server/video/watch/?id=7370279n&tag=mg;mostpopvideo”;
my$path=“/path/to/download/to”;
打开(f,“$curl-L$startpage |”)或死亡“无法打开网站:$!”;
而()
{
如果(/]*href=\“$server\/([^\“\/])*\”/)
{
my$file=$2;
系统(“$curl-e$startpage$server/$file>$path/$file”);
下一个
}
如果(/]*href=\“$server\/([^\“]+)\/([^\“\/])*\”/)
{
我的$folder=$1;
my$file=“$folder/$2”;
系统(“mkdir-p$path/$folder”);
系统(“$curl-e$startpage$server/$file>$path/$file”);
下一个
}
}
关闭(f);

你的问题不是很清楚,你想从网页上刮取什么?当iPad UA请求时会发生什么?当你使用USER_AGENT param通过curl发出请求时,CURLOPT_USERAGENT的内容定义了HTTP请求的标题。上面的代码不会刮取输出,刮取输出的功能或者iPad应该在您请求的URL上。@james我想从iPad上刮下标签内的内容UA@mahadeb:我明白了,你说的“iPad的抓取输出功能应该在你请求的URL上”是什么意思?嗨,Nicholas,我尝试了上面的代码,它给了我这个错误消息“curl:没有指定URL!”!curl:请尝试“curl--help”或“curl--manual”了解更多信息“我将代码保存在一个.pl文件中,然后将其加载到命令行。