微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python请求-拒绝连接

如何解决Python请求-拒绝连接

我正在尝试使用请求python模块从csv文件中的各种URL获取status_code。 它适用于某些网站,但是对于大多数网站,它显示“拒绝连接” ,即使我通过浏览器访问这些网站也可以正常加载。

代码如下:

import pandas as pd 
import requests 
from requests.adapters import HTTPAdapter
from fake_useragent import UserAgent
import time
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

df = pd.read_csv('Websites.csv')
output_data = pd.DataFrame(columns=['url','status'])
number_urls = df.shape[0]

i = 0

for url in df['urls']:

    session = requests.Session()
    adapter = HTTPAdapter(max_retries=3)
    adapter.max_retries.respect_retry_after_header = False
    session.mount('http://',adapter)
    session.mount('https://',adapter)

    print(url)

    ua = UserAgent()
    header = {'User-Agent':str(ua.chrome)}
    
    try:
        # Status
        start = time.time()
        response = session.get(url,headers=header,verify=False,timeout=0.5)
        request_time = time.time() - start
        info = "Request completed in {0:.0f}ms".format(request_time)
        print(info)
        status = response.status_code
        if (status == 200):
            status = "Connection Successful"
        if (status == 404):
            status = "404 Error"
        if (status == 403):
            status = "403 Error"
        if (status == 503):
            status = "503 Error"
        print(status)

        output_data.loc[i] = [df.iloc[i,0],status]

        i += 1

    except requests.exceptions.Timeout:
        status = "Connection Timed Out"
        print(status)
        request_time = time.time() - start
        info = "TimeOut in {0:.0f}ms".format(request_time)
        print(info)

        output_data.loc[i] = [df.iloc[i,status]
        i += 1

    except requests.exceptions.ConnectionError:
        status = "Connection Refused"
        print(status)
        request_time = time.time() - start
        info = "Connection Error in {0:.0f}ms".format(request_time)
        print(info)

        output_data.loc[i] = [df.iloc[i,status]
        i += 1

output_data.to_csv('dead_blocked2.csv',index=False)
print('CSV file created!')

以下是一个显示“拒绝连接”的网站的示例,即使该网站有效:https://www.dytt8.net

我尝试使用以下代码段使用不同的TLS版本并更新我的会话,但仍然无法正常工作:

class MyAdapter(HTTPAdapter):
def init_poolmanager(self,connections,maxsize,block=False):
    self.poolmanager = PoolManager(num_pools=connections,maxsize=maxsize,block=block,ssl_version=ssl.PROTOCOL_TLSv1)

有人可以帮忙吗?

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。