Je suis en train de scrapper des sites Web à l'aide du package FriendsOfPHP/Goutte. Tout fonctionne bien. Je suis en train de gratter les sites pour les balises de graphique ouvert comme image, titre, etc, lorsqu'un utilisateur colle une URL dans une entrée. Le problème se produit lorsqu'un utilisateur copie l'URL à partir d'un périphérique mobile, l'URL est maintenant une URL pour mobile, comme https://m.datpiff.com/tape/818948, et sur cette URL, il n'y a pas de balises de graphique ouvert.Forcer une version de site du bureau lors de la récupération à l'aide de file_get_contents()
Lorsque j'accéder à la même URL et remplacer le sous-domaine m avec www par exemple https://www.datpiff.com/tape/818948 à partir d'un ordinateur de bureau, il me redirige vers: http://www.datpiff.com/Chance-The-Rapper-Jeremih-Merry-Christmas-Lil-Mama-mixtape.818948.html.
et cette URL de bureau contient des balises de graphique ouvert.
Y a-t-il un moyen pour que mon serveur forcer ou tromper le serveur de réception à rediriger toutes les URL vers la version de bureau, afin que je puisse utiliser les balises de graphique ouvertes? Le serveur de réception redirige déjà vers l'URL appropriée, mais uniquement si je tape directement à partir d'un navigateur sur un bureau.
Voici le code que j'utilise - ça marche très bien. Je dois juste être en mesure de rediriger l'URL que je raccroche à la version de bureau.
D'abord, je suis remplaçant le m avec www dans mes js comme ceci:
fullurl.replace('m.',"www");
qui convertit https://m.datpiff.com/tape/818948 en https://www.datpiff.com/tape/818948
puis dans mon code PHP j'utilise quelque chose comme ceci:
$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();
'fullurl.replace ("www" 'm.'); 'semble être un mauvais appel, en partie parce qu'il va transformer' https: // m.datpiff.com/tape/818948' en 'https: // wwwdatpiff.com/tape/818948' et en partie parce qu'il est va remplacer 'http: // example.com/m.html' dans' http: // example.com/wwwhtml'. – ceejayoz
ceejayoz, mon erreur je remplace 'm' avec 'www', j'ai consolé le journal l'URL et je reçois ce dont j'ai besoin qui est https://www.datpiff.com/tape/818948, anyIdea sur la façon dont Je peux obtenir une réponse à la question originale., Merci – Luna
ceejayoz Je comprends maintenant ce que vous voulez dire, ce que je fais maintenant, est fullurl.replace (": // m.", ": // www.") – Luna