Anonymus
Anonymus

Reputation: 163

How to get HTTP response headers with Python urlopen()

In this code

from bs4 import BeautifulSoup
import urllib2
import re

html_page = urllib2.urlopen("http://fr.wikipedia.org/wiki/Alan_Turing")

soup = BeautifulSoup(html_page, "lxml")

print soup

I can return source code.

But how having http headers (in Python), please ?

Example :

HTTP/1.1 200 OK
Server: nginx/1.9.4
Date: Thu, 10 Sep 2015 09:13:25 GMT
Content-Type: text/css; charset=utf-8
Content-Length: 10699
x-content-type-options: nosniff
Cache-Control: public, max-age=300, s-maxage=300
X-Powered-By: HHVM/3.6.5
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Expires: Thu, 10 Sep 2015 09:16:07 GMT
Content-Encoding: gzip
Accept-Ranges: bytes
Age: 138

Thanks !

Upvotes: 3

Views: 3415

Answers (1)

Daniel Roseman
Daniel Roseman

Reputation: 599600

As the documentation explains, urllib2.urlopen returns an object with an info() method which returns the headers.

response = urllib2.urlopen("http://fr.wikipedia.org/wiki/Alan_Turing")
info = response.info()
for header in info.headers:
    print header,

Upvotes: 3

Related Questions