Python - 如何获取站点的http响应

时间:2014-04-28 17:00:38

标签: python

我想制作一个python检查器来检查网站的http响应

我从其他人那里获取剧本

像这样的剧本

import pycurl
import cStringIO
import re

curl = pycurl.Curl()

buff = cStringIO.StringIO()
hdr = cStringIO.StringIO()

curl.setopt(pycurl.URL, 'http://example.org')
curl.setopt(pycurl.WRITEFUNCTION, buff.write)
curl.setopt(pycurl.HEADERFUNCTION, hdr.write)
curl.perform()

print "status code: %s" % curl.getinfo(pycurl.HTTP_CODE)
# -> 200

status_line = hdr.getvalue().splitlines()[0]
m = re.match(r'HTTP\/\S*\s*\d+\s*(.*?)\s*$', status_line)
if m:
    status_message = m.groups(1)
else:
    status_message = ''

print "status message: %s" % status_message
# -> "OK"

我的问题是,我如何制作该脚本可以从list.txt中的列表检查网站

示例list.txt

www.google.com
www.facebook.com
www.twitter.com

2 个答案:

答案 0 :(得分:2)

您可以使用open阅读.txt文件。例如:

import urllib
f = open('list.txt')
for l in f:
    try:
        #for python3.x use: x= urllib.request.urlopen('http://'+l)
        x= urllib.urlopen('http://'+l) 
    except:
        print ('not found')
    else:
        print (x.readlines())

答案 1 :(得分:0)

您可以使用网站地址列表并迭代所有列表项

websites = ["www.google.com","www.facebook.com","www.twitter.com"]
for website in websites:
      html = urllib2.urlopen(website).read()
      # DO Something