Python如何获取si的http响应

2024-03-28 13:44:23 发布

您现在位置: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"

我的问题是,我如何使脚本能够从列表中检查站点列表.txt你知道吗

示例列表.txt你知道吗

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

Tags: importrecomhttpmessage列表hdr站点
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())

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

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

相关问题 更多 >