0
votes

Obtenir du contenu spécifique à partir d'une URL externe - PHP

J'essaie d'obtenir le lien de téléchargement direct à partir de Google Drive, je souhaite donc obtenir un contenu spécifique à partir d'une URL externe.

Exemple: visitez x link et obtenez l'URL de cette DIV ou De cette classe! Je pense que cela est possible, mais je ne sais pas comment le faire. xxx

est que possible avec php ou JavaScript ?


0 commentaires

3 Réponses :


0
votes

Serait-il juste de dire que vous essayez de supprimer des liens d'une page externe? Si tel est le cas, il existe un package JS très populaire appelé Cheerio, qui vous permet d'accéder aux éléments de la même manière que jQuery. Il fonctionne sur Node https://www.npmjs.com/package/cheerio mais il semble disponible via CDN à https://www.jsdelivr.com/package/npm/cheerio < / a>


1 commentaires

Merci pour votre aide, mais j'ai besoin de code du code du code, je ne peux pas faire cela par moi-même, merci encore



-1
votes

Certainement possible avec PHP et JavaScript. La chose est, comment vous voulez l'aborder. Pour obtenir le lien de téléchargement depuis Drive en analysant DOM, j'utiliserai ces packages:

PHP: package simple_html_dom

NODE JS: cheerio

PYTHON: bibliothèque de requêtes simples avec bs4

Vous pouvez simplement filtrer avec find () pour localiser la section de texte du lien de téléchargement et la récupérer enfin avec la méthode en clair () de simple_html_dom

Exemple

include ('simple_html_dom.php');

$ html = file_get_html ('gdriveurl');

$ target = $ html-> find ('a'):

echo $ target-> href (Ceci est le lien de téléchargement)

Une autre solution la plus simple est xpath


4 commentaires

S'il vous plaît, pouvez-vous me montrer un code? faire cette fonction? Merci


Ajouté en réponse.


quelque chose manque encore, pouvez-vous afficher le code complet merci encore


Vous devrez télécharger cette bibliothèque depuis SourceForge et remplacer ^ gdriveurl par l'URL de votre lecteur Google. Faites-moi savoir si un autre problème



1
votes

Bien sûr, cela peut être fait facilement avec file_get_contents , DOMDocument et DOMXPath de php.

L'exemple suivant obtient le Valeur HREF de la balise du logo 'Stack Overflow', qui a la classe -logo js-gps-track :

$html = file_get_contents('http://stackoverflow.com/');
$dom = new DOMDocument();
libxml_use_internal_errors(true);

$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

// find the element whose href value you want by XPath
$nodes = $xpath->query('//*[@class="-logo js-gps-track"]');

foreach($nodes as $href) {
    // print out the href value
    echo $href->getAttribute( 'href' ); 
}

De toute évidence, il vous suffit de modifier l'URL et le XPath pour votre cas d'utilisation spécifique.


6 commentaires

Merci pour votre aide, donc dans mon cas, l'url est la suivante https://drive.google.com/uc?id=12ejMrVziFpjcEpG9A2Ks4yoNDJ9q‌ z0B5 & export = download et le nom de la classe est jfk- button-action et après cette classe, est l'url de téléchargement que je veux obtenir, après avoir mis votre code, j'ai essayé d'obtenir le lien mais ne fonctionne pas!


Si vous effectuez un file_get_contents sur cette URL, vous verrez qu'elle ne récupère que les données du fichier. Ce n'est pas une URL HTML


alors comment je peux obtenir, le lien de téléchargement pouvez-vous afficher le code complet, merci


maintenant, j'ai un test pour obtenir le logo Stack Overflow, mais cela ne fonctionne pas, qui obtiennent l'URL de Stack Overflow stackoverflow.com et non l'URL du logo!


L'URL que vous avez fournie est le lien de téléchargement direct. Je ne peux pas vous dire quelle est l'URL qui contiendrait ce lien - vous devrez trouver cette page et partir de là. L'exemple que j'ai collé pour stackexchange fonctionne - l'URL du logo est ' stackexchange.com '


Merci pour votre aide, votre code fonctionne parfaitement, c'était mon erreur. mais votre code fonctionne parfaitement. Merci encore