gratter ASIN de amazon URL à l'aide de javascript
En supposant que j'ai une Amazone URL du produit comme
http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015T963C/ref=amb_link_86123711_2?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-1&pf_rd_r=0AY9N5GXRYHCADJP5P0V&pf_rd_t=101&pf_rd_p=500528151&pf_rd_i=507846
Comment ai-je pu gratter juste le ASIN à l'aide de javascript?
Merci!
OriginalL'auteur rashcroft22 | 2009-11-19
Vous devez vous connecter pour publier un commentaire.
Amazon détail pages peuvent avoir plusieurs formes, donc, pour être complet, vous devriez vérifier pour eux tous. Ce sont toutes équivalentes:
http://www.amazon.com/Kindle-Wireless-Reading-Display-Generation/dp/B0015T963C
http://www.amazon.com/dp/B0015T963C
http://www.amazon.com/gp/product/B0015T963C
http://www.amazon.com/gp/product/glance/B0015T963C
Ils ont toujours l'air de ceci ou cela:
Cela devrait le faire:
dp|gp/product|exec/obidos/asin
.Sur cette base, et l'ajout du support pour les caractères internationaux, les ports, https, la non-US domaines, et la requête des paramètres de suivi (et je suis à l'aide de Java), il serait: Modèle asinPattern = Modèle .compile("^(http[s]?://)?([\\w.-]+)(:[0-9]+)?/([\\w-%]+/)?(dp|gp/product|exec/obidos/asin)/(\\w+/)?(\\w{10})(.*)?$");
Même après @JasonThrasher de mise à jour, il ne fonctionne toujours pas pour l'url: amazon.com/gp/aw/d/... Gumbo la solution semble être de travail pour toutes mes url
Pour quelque raison, pour moi, cette expression ne parvient pas à extraire cette URL: amazon.com/Rising-Strong-Bren%C3%89-Brown-ebook/dp/B00P5557G2/...
Cette regex ne fonctionne pas pour ce lien - amazon.com/gp/aw/d/B003IKGX6O/...
OriginalL'auteur jpsimons
Depuis l'ASIN est toujours une séquence de 10 lettres et/ou chiffres immédiatement après une barre oblique, essayez ceci:
Supplémentaires
(?:[/?]|$)
après l'ASIN est de s'assurer que seulement un chemin d'accès complet du segment est pris.Fonctionne pour moi dans les deux cas.
Fonctionne très bien jsfiddle.net/s6qsa6ph
Ne fonctionne pas avec amazon.com/Blitz-Gem-Jewelry-Cleaner-Concentrate/dp/...
Notez que l'ASIN pour les livres est le numéro ISBN et l'Isbn après 2007, 13 caractères (au lieu de la plus 10 caractères).
OriginalL'auteur Gumbo
En fait, la réponse sommet ne fonctionne pas si c'est quelque chose comme amazon.com/BlackBerry... (depuis le BlackBerry est également à 10 caractères).
Une solution de contournement (en supposant que l'ASIN est toujours en majuscule, comme c'est toujours le cas lorsqu'il est pris sur Amazon) est (en Ruby):
Je l'ai trouvé à travailler sur des milliers d'URLs.
Il devrait fonctionner sur les deux exemples que vous avez donné, parce que l'ASIN est toujours de 10 majuscules/numérique caractères après le "/". Donc il ne serait pas correspondre au début de l'URL, mais ce serait encore correspondre à la fin. Corrigez-moi si je me trompe
il est de votre exemple ne fonctionne pas sur certains liens. Essayez celui-ci - amazon.com/BEAUTBRIDE-Womens-Beaded-Wedding-Fingerless/dp/.... BEAUTBRIDE est de 10 caractères, de façon qu'il corresponde à ce que, au lieu de B010Q0Y92I.
OriginalL'auteur osman
Aucun de ces travaux dans tous les cas. J'ai essayé de suivre les url pour correspondre avec les exemples ci-dessus:
C'est le meilleur que je pouvais venir:
(?:[/dp/]|$)([A-Z0-9]{10})
Qui choisira le préfixant par /dans tous les cas. Cela peut ensuite être retiré plus tard.
Vous pouvez le tester sur: http://regexr.com/3gk2s
OriginalL'auteur Chalkin
@Gumbo: le code fonctionne très bien!
//JS Test: Test dans firebug.
- Je ajouter une fonction php qui fait la même chose.
OriginalL'auteur Diego Gallardo
c'est ma universelle amazon ASIN regexp:
OriginalL'auteur Cornel Plamadeala
quelque chose comme cela devrait fonctionner (pas testé)
OriginalL'auteur Scott Evernden
La Article de wikipédia sur l'ASIN (que j'ai linkified dans votre question) donne les différentes formes d'Amazon Url. Vous pouvez assez facilement, créer une expression régulière (ou série) pour récupérer ces données à l'aide de la
match()
méthode.OriginalL'auteur ceejayoz
Cela peut être une approche simpliste, mais je n'ai pas encore trouvé une erreur dans en utilisant l'un de l'URL fournie dans ce fil que les gens disent est un problème.
Simplement, je prends l'URL, le diviser sur le "/" pour obtenir les pièces discrètes. Ensuite une boucle sur le contenu de la matrice et de rebondir hors de la regex. Dans mon cas, la variable i est un objet qui a une propriété appelée RawURL pour contenir l'url brut que je travaille avec et les une propriété appelée VendorSKU que je suis de remplissage.
Jusqu'à présent, cela a fonctionné parfaitement.
OriginalL'auteur Jay Davis
Si l'ASIN est toujours dans cette position dans l'URL:
si il ya probablement peu de chance ASIN prise en %-s'est échappé.
OriginalL'auteur bobince