2017-10-05 6 views
1

Vous essayez d'obtenir du contenu à partir d'un site Web: www.arrow.com mais mon programme se bloque. Je ne peux pas récupérer de réponse du tout.Impossible de récupérer le contenu html d'une page Web avec des requêtes Python

J'ai utilisé curl, wget et le même problème. Je reçois:

<head><title>Document Moved</title></head> 
<body><h1>Object Moved</h1>This document may be found <a HREF="https://www.arrow.com/en/products/search/">here</a></body> 

J'ai eu la réponse à l'aide POSTMAN, où je compris que la réponse est codée avec gzip. Dans le site Web, beaucoup de gens suggèrent d'ajouter quelques en-têtes pour résoudre ce problème, mais je n'ai eu aucun succès jusqu'ici.

import requests 
url = 'http://www.arrow.com/en/products/search/' 
params = {'q': 'ISOW7841FDWER'} 
headers = { 
     'Accept-Encoding': "gzip,x-gzip,deflate,sdch,compress", 
     'Accept-Content': 'gzip', 
     'HTTP-Connection': 'keep-alive', 
     'Accept-Language': "en-US,en;q=0.8", 
    } 
r = requests.get(url, params=params, headers=headers) 
print(r.url) 
print(r.text) 

Répondre

1

Vous n'avez pas besoin d'avoir tous ces éléments dans headers, mais vous avez besoin d'usurper User-Agent sinon le site ne répondra pas.

import requests 

url = 'https://www.arrow.com/en/products/search' 
params = {'q': 'ISOW7841FDWER'} 
headers = {'User-Agent': 'Mozilla/5'} 
r = requests.get(url, params=params, headers=headers) 
print(r.url) 
print(r.text)