Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用请求和HTTP/HTTPS优化Python v3.X代码_Python_Python 3.x_Python Requests - Fatal编程技术网

使用请求和HTTP/HTTPS优化Python v3.X代码

使用请求和HTTP/HTTPS优化Python v3.X代码,python,python-3.x,python-requests,Python,Python 3.x,Python Requests,我在Python3.7中有以下代码。本质上,我有一个包含大量以http://开头的URL的列表。我的守则的目的是:- 使用requests.head()检查URL是否已打开 如果未返回200状态,请将url变量中的http替换为https 使用requests.head()检查URL是否已使用https更新 如果它没有返回200状态,请转到列表中的下一个URL 我的代码似乎效率不高。我正在考虑为requests.head()寻找某种函数,这样我现在可以重复它,但我仍然觉得必须有一种更有效的方

我在Python3.7中有以下代码。本质上,我有一个包含大量以http://开头的URL的列表。我的守则的目的是:-

  • 使用requests.head()检查URL是否已打开
  • 如果未返回200状态,请将url变量中的
    http
    替换为
    https
  • 使用requests.head()检查URL是否已使用https更新
  • 如果它没有返回200状态,请转到列表中的下一个URL
我的代码似乎效率不高。我正在考虑为requests.head()寻找某种函数,这样我现在可以重复它,但我仍然觉得必须有一种更有效的方法来执行上述操作

有什么建议吗?
请求
模块是否有可设置为检查HTTP和HTTPS的选项?我在网上找不到任何内容

多线程

导入请求
def工作者(url):
r=请求.头(url)
如果r.status_code==200:
打印(“网站%s已打开”%url)
其他:
打印(“URL%s不可访问”%URL)
url=url.replace('http','https')
打印(“正在尝试URL%s”%URL)
r=requests.head(url,headers=headers)
如果r.status_code==200:
打印(“使用HTTPS%s的网站已启动”%url)
其他:
打印(“网站%s仍然无法访问”%url)
从\u线程导入开始\u新线程
对于您的url列表中的url:
启动新线程(工作线程,(url,)
    import requests    
    my_list = [#Lots of URLs in this list]
    for url in my_list:
        r = requests.head(url)
        if r.status_code==200:
            print("website %s is up" % url)
        else:
            print("URL %s is not accessible" % url)
            url = url.replace('http', 'https')
            print("Now trying URL %s" % url)
            r = requests.head(url, headers=headers)
            if r.status_code==200:
                print("website using HTTPS %s is up" % url)
            else:
                print("website %s is still not accessible" % url)