2017-08-22 11 views
0

En Python, comment puis-je obtenir headers et payload des informations pour un site Web particulier pour effectuer des demandes via requests.Session()?Python: Comment obtenir des en-têtes et des informations utiles pour request.Session()?

.: par exemple

headers = { 
      'Host': 'www.testsite.com', 
      'Accept': 'application/json', 
      'Proxy-Connection': 'keep-alive', 
      'X-Requested-With': 'XMLHttpRequest', 
      'Accept-Encoding': 'gzip, deflate', 
      'Accept-Language': 'en-us', 
      'Content-Type': 'application/x-www-form-urlencoded', 
      'Origin': 'http://www.testsite.com', 
      'Connection': 'keep-alive', 
      'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257', 
      'Referer': 'http://www.testsite.com/mobile' 
} 

Nous vous remercions à l'avance et ne manquera pas de upvote et accepter réponse

+0

Vous construisez vos propres têtes pour être tout ce que vous voulez, donc je ne suis pas sûr de ce que vous entendez par "Comment puis-je obtenir des en-têtes?". Voulez-vous dire "Comment puis-je découvrir quels en-têtes l'hôte veut recevoir?" –

Répondre

0

La plupart de ces en-têtes sont fournis automatiquement par le module requests. Voici un exemple:

import requests 
from pprint import pprint 

with requests.Session() as s: 
    s.get('http://httpbin.org/cookies/set?name=joe') 
    r = s.get('http://httpbin.org/cookies') 
    pprint(dict(r.request.headers)) 

assert r.json()['cookies']['name'] == 'joe' 

La sortie de l'appel pprint() est ceci:

{'Accept': '*/*', 
'Accept-Encoding': 'gzip, deflate', 
'Connection': 'keep-alive', 
'Cookie': 'name=joe', 
'User-Agent': 'python-requests/2.9.1'} 

Comme vous pouvez le voir, dans plusieurs s.get() remplissages têtes.

+0

Merci pour la réponse! qu'en est-il de la charge utile pour un itinéraire spécifique, par ex. 'http: // www.testsite.com/students.json', et comment trouvez-vous réellement quelles routes sont disponibles pour un site en premier lieu? Et pourquoi a-t-il par exemple 'students.json'? –

+0

Je suis sûr que l'URL que vous mentionnez n'est pas réelle. Si vous nous dites l'URL que vous utilisez, les gens pourraient être en mesure d'aider. –

+0

par exemple. 'https: // shop-usa.palaceskateboards.com/collections/hardware' J'ai vérifié l'outil google dev sous' Network' mais pourquoi ne montre-t-il pas où ils font les appels de l'API, pour récupérer les données json et remplir la page avec des objets? –

0

Un objet response a un attribut headers:

import requests 

with requests.Session() as s: 
    r = s.get("http://google.es") 
    print(r.headers) 

Sortie:

>> { 
    'Date': 'Tue, 22 Aug 2017 00:37:13 GMT', 
    'Expires': '-1', 
    'Cache-Control': 'private, 
    max-age=0', 
    'Content-Type': 'text/html; charset=ISO-8859-1', 
    ... 
    } 
+0

apprécie la réponse! qu'en est-il de la charge utile pour un itinéraire spécifique, par ex. 'http: // www.testsite.com/students.json', et comment trouvez-vous réellement quelles routes sont disponibles pour un site en premier lieu? Et pourquoi a-t-il par exemple 'students.json'? –