javascript - 模拟天猫ajax请求抓取商品价格,无法获取响应数据?
在浏览器中根据头信息模拟ajax请求抓取淘宝商品价格,无法获取response信息。
**在浏览器中输入headers 中的request url,显示的是页面无法访问。
想知道下淘宝试用了什么技术屏蔽了,以及怎么解决这个问题,按道理说展现在客户端的数据都能获取的到的,谢谢?**
测试商品地址:https://detail.tmall.com/item.htm?id=41809359032&skuId=3145753887167
ajax地址:https://mdskip.taobao.com/core/initItemDetail.htm?sellerPreview=false&tmallBuySupport=true&service3C=false&isAreaSell=false&isApparel=false&cartEnable=true&isSecKill=false&queryMemberRight=true&itemId=41809359032&isRegionLevel=false&showShopProm=false&household=false&tryBeforeBuy=false&isUseInventoryCenter=false&cachedTimestamp=1461004599117&isForbidBuyItem=false&offlineShop=false&addressLevel=2&callback=setMdskip×tamp=1461017878859&isg=AmVlWlJ2uZ-EwfyJzSxGWUY49Suf-Rk0
回复内容:
在浏览器中根据头信息模拟ajax请求抓取淘宝商品价格,无法获取response信息。
**在浏览器中输入headers 中的request url,显示的是页面无法访问。
想知道下淘宝试用了什么技术屏蔽了,以及怎么解决这个问题,按道理说展现在客户端的数据都能获取的到的,谢谢?**
测试商品地址:https://detail.tmall.com/item.htm?id=41809359032&skuId=3145753887167
ajax地址:https://mdskip.taobao.com/core/initItemDetail.htm?sellerPreview=false&tmallBuySupport=true&service3C=false&isAreaSell=false&isApparel=false&cartEnable=true&isSecKill=false&queryMemberRight=true&itemId=41809359032&isRegionLevel=false&showShopProm=false&household=false&tryBeforeBuy=false&isUseInventoryCenter=false&cachedTimestamp=1461004599117&isForbidBuyItem=false&offlineShop=false&addressLevel=2&callback=setMdskip×tamp=1461017878859&isg=AmVlWlJ2uZ-EwfyJzSxGWUY49Suf-Rk0
应该是设置了请求头的,看了下请求头,的确添加了很多信息,比如:
<code>:host:mdskip.taobao.com :method:GET :path:/core/initItemDetail.htm?cachedTimestamp=1461009311258&cartEnable=true&showShopProm=false&isRegionLevel=false&isApparel=false&isSecKill=false&household=false&tryBeforeBuy=false&tmallBuySupport=true&isAreaSell=false&addressLevel=2&isUseInventoryCenter=false&itemId=41809359032&service3C=false&isForbidBuyItem=false&queryMemberRight=true&sellerPreview=false&offlineShop=false&callback=setMdskip×tamp=1461033279024&isg=AtzcYW2gFJ356UEz3F1PosPPLPGOSIB9 :scheme:https :version:HTTP/1.1 </code>
这些:开头的。
尝试了下,仅仅使用这些:开头的,还是获取不到数据,所以,直接使用了完整的请求头,是可以获取到数据的。
个人觉得,除了:开头的请求头之外,下面这两信息也很重要:
<code>cookie:thw=cn; _tb_token_=gZXg9WRSTLiB; t=d11a113cccfbf234424ce707c955b9dd; cookie2=d6cd51e3c36d47dac9fabd9d79a11cd9; v=0; cna=H6pvD4R7/TgCAbaX1qJODtvU; _m_h5_tk=7660b8def380dbda6d85d45bc16b5726_1460713055364; _m_h5_tk_enc=23dd2b0a97166d8978bc9ecee14d6512; l=AqCgGx9hG8f3aY1ncDHLO1GX8KVyq4Rz referer:https://detail.tmall.com/item.htm?id=41809359032&skuId=3145753887167 </code>
尤其是cookie,从他代码中看到设置了referer的,没有测试是否可以去掉该设置,你可以自己设置。
所以,天猫这个限制,应该是请求头+cookie+(或者还有其他)的方式来处理的,你只需要模拟类似的请求,添加这些请求信息即可。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

Ce tutoriel montre comment traiter efficacement les documents XML à l'aide de PHP. XML (Language de balisage extensible) est un langage de balisage basé sur le texte polyvalent conçu à la fois pour la lisibilité humaine et l'analyse de la machine. Il est couramment utilisé pour le stockage de données et

Une chaîne est une séquence de caractères, y compris des lettres, des nombres et des symboles. Ce tutoriel apprendra à calculer le nombre de voyelles dans une chaîne donnée en PHP en utilisant différentes méthodes. Les voyelles en anglais sont a, e, i, o, u, et elles peuvent être en majuscules ou en minuscules. Qu'est-ce qu'une voyelle? Les voyelles sont des caractères alphabétiques qui représentent une prononciation spécifique. Il y a cinq voyelles en anglais, y compris les majuscules et les minuscules: a, e, i, o, u Exemple 1 Entrée: String = "TutorialSpoint" Sortie: 6 expliquer Les voyelles dans la chaîne "TutorialSpoint" sont u, o, i, a, o, i. Il y a 6 yuans au total

Liaison statique (statique: :) implémente la liaison statique tardive (LSB) dans PHP, permettant à des classes d'appel d'être référencées dans des contextes statiques plutôt que de définir des classes. 1) Le processus d'analyse est effectué au moment de l'exécution, 2) Recherchez la classe d'appel dans la relation de succession, 3) il peut apporter des frais généraux de performance.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Quelles sont les méthodes magiques de PHP? Les méthodes magiques de PHP incluent: 1. \ _ \ _ Construct, utilisé pour initialiser les objets; 2. \ _ \ _ Destruct, utilisé pour nettoyer les ressources; 3. \ _ \ _ Appel, gérer les appels de méthode inexistants; 4. \ _ \ _ GET, Implémentez l'accès à l'attribut dynamique; 5. \ _ \ _ SET, Implémentez les paramètres d'attribut dynamique. Ces méthodes sont automatiquement appelées dans certaines situations, améliorant la flexibilité et l'efficacité du code.

Dans PHP8, les expressions de correspondance sont une nouvelle structure de contrôle qui renvoie différents résultats en fonction de la valeur de l'expression. 1) Il est similaire à une instruction Switch, mais renvoie une valeur au lieu d'un bloc d'instruction d'exécution. 2) L'expression de correspondance est strictement comparée (===), ce qui améliore la sécurité. 3) Il évite les éventuelles omissions de rupture dans les instructions de commutation et améliore la simplicité et la lisibilité du code.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
