【问题标题】:Get data from asp.net page using curl使用 curl 从 asp.net 页面获取数据
【发布时间】:2014-01-17 02:59:55
【问题描述】:

我尝试file_get_content 和 curl 来获取当我在浏览器中打开它时显示的页面数据,但什么也没得到。

URL 在浏览器中打开,但是当我使用 curl 时我重定向到主页,我使用什么方法来完成抓取页面以及响应中的所有数据。

函数卷曲($url) { $agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:26.0) Gecko/20100101 Firefox/26.0"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $data = curl_exec($ch); $info = curl_getinfo($ch); 打印_r($信息); echo "卷曲错误".curl_error($ch); curl_close($ch); 回显$数据; 返回$数据; } $secState = '70'; $rankYear = 2013; $url = 'https://tennislink.usta.com/tournaments/rankings/rankinghome.aspx#Action=1&SectionDistrict='.$secState.'&Year='.$rankYear.'&Division=G8&ListType=0'; 回声 $url; $html=curl($url); 回声 $html;

【问题讨论】:

    标签: php asp.net curl web-scraping


    【解决方案1】:

    您确定您的网址正确吗? &SectionDistrict 之间有一个 whitesapce 字符

    你可以用下面的方法再试一次

        $url = 'https://tennislink.usta.com/tournaments/rankings/rankinghome.aspx#Action=1&SectionDistrict='.$secState.'&Year='.$rankYear.'&Division=G8&ListType=0';
    

    这个网址也应该适用于file_get_contents

    【讨论】:

    • 不,实际上我在这里@Stackoverflow 格式化问题,这只是一个格式化错误,在实际代码中没有错误。站点在 ASP.net 中,并且正在执行 _dopostback 以获取内容,我认为存在一些问题,由于 javascript dopostback 功能,我无法获取数据。我不知道如何解决这个问题。
    • 如果使用ajax拉取数据,您可以使用浏览器的DeveloperTools并监控发送数据以确定正确的url、方法和参数。在您的情况下,您必须发送 POST 请求并添加大量数据。也许,您必须解析 https://tennislink.usta.com/tournaments/rankings/rankinghome.aspx 的内容才能为发布请求添加所有必要的隐藏字段
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多