微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 使用file_get_contents()进行抓取时强制使用桌面版网站

我正在使用FriendsOfPHP / Goutte包抓取网站.一切都很好.当用户将URL粘贴到输入中时,我正在抓取用于打开图形标签(如图像,标题等)的网站.

用户从移动设备复制URL时,会出现问题,该URL现在是移动URL,如https://m.datpiff.com/tape/818948,并且在该URL上没有开放图标签.

当我访问相同的URL并用www替换子域m时,例如从桌面https://www.datpiff.com/tape/818948,它将我重定向到:http://www.datpiff.com/Chance-The-Rapper-Jeremih-Merry-Christmas-Lil-Mama-mixtape.818948.html.

此桌面URL确实包含开放图标签.

有没有办法让我的服务器强制或欺骗接收服务器将所有URL重定向到桌面版本,以便我可以使用开放图形标签?接收服务器已经重定向到正确的URL,但前提是我直接从桌面上的浏览器输入.

这是我正在使用的代码 – 它很棒.我只需要能够将我正在抓取的URL重定向到桌面版本.

首先,我在我的js中用www替换m,如下所示:

fullurl.replace('m.',"www");

https://m.datpiff.com/tape/818948转换为https://www.datpiff.com/tape/818948

然后在我的PHP代码中我使用这样的东西:

$url_to_scrape = $urltoscrape;
    $client = new Client();

    // Go to the example.com website
    $crawler = $client->request('GET', $url_to_scrape);


    $opengraphImage =$crawler->filterXpath('//Meta[@property="og:image"]')->attr('content');
    $title = $crawler->filter('title')->text();

解决方法:

您需要传递cookie以将您重定向到桌面版本:

name    value      domain          path
mredir    0    .www.datpiff.com     /

奇怪的是,如果你替换m.与www.不起作用.
尝试添加桌面用户代理.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐