Python - 如何使用请求等待服务器响应

时间:2016-10-25 21:28:32

标签: python

我使用以下代码检索网页。

import requests
payload = {'name': temp} #I extract temp from another page.
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:49.0) Gecko/20100101 Firefox/49.0','Accept': 'text/html, */*; q=0.01','Accept-Language': 'en-US,en;q=0.5', 'X-Requested-With': 'XMLHttpRequest' }
full_url = url.rstrip() + '/test/log?'
r = requests.get(full_url, params=payload, headers=headers, stream=True)                    
for line in r.iter_lines():
   if line:
    print line

但由于某些原因,http响应缺少标签内的文本 我发现如果我将请求发送给Burp,拦截它并等待3秒然后转发它,那么我得到包含标签内的文本的完整html页面.... 我仍然找不到原因。想法?

1 个答案:

答案 0 :(得分:0)

来自请求文档:

  

默认情况下,当您发出请求时,响应的正文是   立即下载。您可以覆盖此行为并推迟   下载响应正文,直到您访问Response.content   属性与stream参数:

Body Content Workflow

换句话说,请尝试删除stream=True

中的requests.get()

访问r.content时,您将拥有所有内容,其中r是回复。