加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 22:27:27 所属栏目:PHP教程 来源:网络整理
导读:我正在使用FriendsOf PHP / Goutte包抓取网站.一切都很好.当用户将URL粘贴到输入中时,我正在抓取用于打开图形标签(如图像,标题等)的网站. 当用户从移动设备复制URL时,会出现问题,该URL现在是移动URL,如https://m.datpiff.com/tape/818948,并且在该URL上没有
我正在使用FriendsOf PHP / 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.不起作用.尝试添加桌面用户代理.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读