首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:无法使用CURL解析特定站点

PHP:无法使用CURL解析特定站点
EN

Stack Overflow用户
提问于 2012-02-18 03:50:43
回答 2查看 658关注 0票数 0

当我尝试使用CURL解析这个站点时,它没有返回任何内容。下面是我的代码:

代码语言:javascript
复制
/* 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://casting.backstage.com/jobseekerx/SearchJobs.asp?SubmitToSearch=Search&lctr=1&rvsd=-1&o1=2&p1=1&ipp=10&city=&fromsearchpage=true&cg=11&cg=12&cg=13&cg=14&cg=15&cg=16&cg=17&cg=18&cg=19&cg=20&cg=22&kwrd=&kwdt=1&lcta=1&btnSearch=Run+Search+Now');

print $returned_content;

我从来没有遇到过这个问题,而且我一直在使用这个方法。我也尝试过使用简单的DOM解析器,并得到了相同的结果。这就是有问题的URL:

http://casting.backstage.com/jobseekerx/SearchJobs.asp?SubmitToSearch=Search&lctr=1&rvsd=-1&o1=2&p1=1&ipp=10&city=&fromsearchpage=true&cg=11&cg=12&cg=13&cg=14&cg=15&cg=16&cg=17&cg=18&cg=19&cg=20&cg=22&kwrd=&kwdt=1&lcta=1&btnSearch=Run+Search+Now

这个页面上是否有某种反爬虫代码在运行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-18 04:52:12

你看到你的错误是什么了吗?echo curl_error($ch)允许您查看所遇到的错误的确切内容。在此基础上,您可以在许多情况下继续解决问题。在本例中,我添加了一个CURLOPT_USERAGENT字段,它工作得很好。

代码语言:javascript
复制
<?php
function get_data($url) 
{
    $ch = curl_init();
    $timeout = 30;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,false);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    curl_setopt($ch,CURLOPT_POST,false);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0) Gecko/20100101 Firefox/10.0");
    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}
$url = 'http://casting.backstage.com/jobseekerx/SearchJobs.asp?SubmitToSearch=Search&lctr=1&rvsd=-1&o1=2&p1=1&ipp=10&city=&fromsearchpage=true&cg=11&cg=12&cg=13&cg=14&cg=15&cg=16&cg=17&cg=18&cg=19&cg=20&cg=22&kwrd=&kwdt=1&lcta=1&btnSearch=Run+Search+Now';
$returned_content = get_data($url);
print $returned_content;
?>

我希望这对你有帮助。

票数 1
EN

Stack Overflow用户

发布于 2012-02-18 03:58:29

这可能是因为生成的HTML完全是垃圾:

http://validator.w3.org/check?uri=http%3A%2F%2Fcasting.backstage.com%2Fjobseekerx%2FSearchJobs.asp%3FSubmitToSearch%3DSearch%26lctr%3D1%26rvsd%3D-1%26o1%3D2%26p1%3D1%26ipp%3D10%26city%3D%26fromsearchpage%3Dtrue%26cg%3D11%26cg%3D12%26cg%3D13%26cg%3D14%26cg%3D15%26cg%3D16%26cg%3D17%26cg%3D18%26cg%3D19%26cg%3D20%26cg%3D22%26kwrd%3D%26kwdt%3D1%26lcta%3D1%26btnSearch%3DRun%2BSearch%2BNow&charset=%28detect+automatically%29&doctype=Inline&group=0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9334464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档