python requests get訪問文件提示500 - Internal Server Error
問題描述
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是內(nèi)網(wǎng)IP。使用IE,火狐什么的瀏覽器訪問文件都是能下載的。就是用requests訪問報(bào)錯(cuò)500,真心不知道為什么,求解!下面是代碼:
import requestsimport sslfrom requests.packages.urllib3.exceptions import InsecureRequestWarningrequests.packages.urllib3.disable_warnings(InsecureRequestWarning)ssl._create_default_https_context = ssl._create_unverified_contexts = 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).contentprint(rr)
下面是瀏覽器發(fā)送得到的信息:
GET /cgi/url_redirect.cgi?url_name=ikvm&url_type=jwsk HTTP/1.1Accept: text/html, application/xhtml+xml, */*X-HttpWatch-RID: 23897-11061Referer: http://172.30.1.141/cgi/url_redirect.cgi?url_name=man_ikvmAccept-Language: zh-CNUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like GeckoAccept-Encoding: gzip, deflateHost: 172.30.1.78Connection: Keep-AliveCookie: langSetFlag=0; language=English; SID=ntnfkcvpmqfhmfnt; mainpage=remote; subpage=man_ikvm
下面是網(wǎng)頁返回的信息:
HTTP/1.1 200 OKContent-Length: 2016Content-Disposition: inline; filename=launch.jnlpContent-Type: application/x-java-jnlp-fileDate: Wed, 10 May 2017 21:01:00 GMT
問題解答
回答1:原來是header的問題,’Referer’加上就好了
回答2:全段代碼貼上來才好分析,現(xiàn)在看來你需要知道瀏覽器下載文件那個(gè)時(shí)刻的所有信息,才能夠用python模擬,要么你可以直接在服務(wù)器端找到500的原因也可以。
回答3:下載文件需要用r.content, 另外post登錄成功之后cookie是已經(jīng)在s里面了,不需要在get的時(shí)候用參數(shù)傳遞
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)
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. docker - 如何修改運(yùn)行中容器的配置3. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.4. nignx - docker內(nèi)nginx 80端口被占用5. python3.x - python連oanda的模擬交易api獲取json問題第五問6. javascript - QWebEngineView 如何爬 angular 的動(dòng)態(tài)數(shù)據(jù)?7. css3 - 沒明白盒子的height隨width的變化這段css是怎樣實(shí)現(xiàn)的?8. javascript - webpack熱加載配置不生效9. java - SSH框架中寫分頁時(shí)service層中不能注入分頁類10. java - instance method中 static后的<K>是什么意思?
