Maison > Questions et réponses > le corps du texte
s = requests.Session()
r = s.post('http://x.x.x.x/cgi/login.cgi', data={'name': 'ADMIN', 'pwd': 'ADMIN'},verify=False)
r = s.get(url, cookies=s.cookies,stream=True)
print(r.text)
IP est l'IP interne. Les fichiers peuvent être téléchargés à l'aide de n'importe quel navigateur tel que IE ou Firefox. J'utilise simplement des requêtes pour accéder et signaler une erreur de 500. Je ne sais vraiment pas pourquoi, aidez-moi !
Voici le code :
import requests
import ssl
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
ssl._create_default_https_context = ssl._create_unverified_context
s = requests.Session()
requests.packages.urllib3.disable_warnings()
r=s.post('https://172.30.1.141/cgi/login.cgi', data={'name': 'ADMIN', 'pwd': 'ADMIN'},verify=False)
print(r.text)
url='https://172.30.1.141/cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk'
rr=s.get(url).content
print(rr)
Voici les informations envoyées par le navigateur :
GET /cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
X-HttpWatch-RID: 23897-11061
Referer: http://172.30.1.141/cgi/url_redirect.cgi?url_name=man_ikvm
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: 172.30.1.78
Connection: Keep-Alive
Cookie: langSetFlag=0; language=English; SID=ntnfkcvpmqfhmfnt; mainpage=remote; subpage=man_ikvm
Voici les informations renvoyées par la page Web :
HTTP/1.1 200 OK
Content-Length: 2016
Content-Disposition: inline; filename=launch.jnlp
Content-Type: application/x-java-jnlp-file
Date: Wed, 10 May 2017 21:01:00 GMT
某草草2017-05-18 10:51:32
Il s'avère que c'est un problème d'en-tête, ajoutez simplement 'Referer' et tout ira bien
滿天的星座2017-05-18 10:51:32
Publiez l'intégralité du code pour analyse. Il semble maintenant que vous ayez besoin de connaître toutes les informations au moment où le navigateur télécharge le fichier avant de pouvoir le simuler avec python, ou vous pouvez trouver directement la raison de 500 côté serveur.
phpcn_u15822017-05-18 10:51:32
Vous devez utiliser r.content pour télécharger le fichier. De plus, une fois la connexion réussie, le cookie est déjà dans s, il n'est donc pas nécessaire de transmettre des paramètres lors de son obtention
.s = requests.Session()
s.post('http://x.x.x.x/cgi/login.cgi', data={'name': 'ADMIN', 'pwd': 'ADMIN'})
r = s.get(url)
with open('文件名', 'wb') as f:
f.write(r.content)