简体   繁体   中英

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 !

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,

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM