在python中,为什么请求在特定时间后停止?

在python中,为什么请求在特定时间后停止?,python,python-3.x,python-requests,request,Python,Python 3.x,Python Requests,Request,我有这个代码,它的功能是发送Jetta类型的请求,从请求中获取文本,从文本文件读取网站链接,问题是在发送300或500个请求后,脚本停止,没有显示任何错误,它只是停止工作 import requests sites = open(r'site.txt', 'r', encoding="utf8").readlines() l_site = [] for i in sites: l_site.append(i) for x in len(l_site):

我有这个代码,它的功能是发送Jetta类型的请求,从请求中获取文本,从文本文件读取网站链接,问题是在发送300或500个请求后,脚本停止,没有显示任何错误,它只是停止工作

import requests

sites = open(r'site.txt', 'r', encoding="utf8").readlines()

l_site = []

for i in sites:
    l_site.append(i)


for x in len(l_site):
    result = requests.get(f'{site}', allow_redirects=True).text
    open('result.txt', 'a').write(f'{result}\n')

我假设您的函数比您在这里输入的要多,因为我看不到
站点
变量的创建位置

你可以沿着这些路线做一些事情,更好地了解它停在哪里

import requests

sites = open(r'site.txt', 'r', encoding="utf8").readlines()

l_site = [s for s in sites]

with open('result.txt', 'a') as fb:

    for site in l_site:
        try:
            print(f"Processing {site}")
            result = requests.get(f'{site}', allow_redirects=True).text
            fb.write(f'{result}\n')
        except Exception as e:
            raise e

如果我理解正确,这就是你想要的:

  • site.txt读取
  • 如果http请求成功,请将响应负载附加到
    result.txt
  • 例如,如果http请求由于超时而失败,请将结果与url一起附加到另一个文件
  • 下面是一段运行的代码。请注意,如果要捕获更多类型的错误,可以更改
    部分,但不包括
    部分

    导入请求
    URL\u文件='site.txt'
    结果文件='RESULT.txt'
    错误\u文件='result error.txt'
    def句柄url(url:str、结果文件、错误文件):
    尝试:
    #10秒超时,不是下载时间,而是获取HTTP响应的时间
    content=requests.get(url,allow\u redirects=True,timeout=10)
    result_file.write(f'{content.text}\n')
    除了requests.exceptions.ConnectTimeout作为e:
    错误\u文件。写入(f'{url}:{e}\n')
    打开(URL\u文件'r',encoding=“utf8”)作为f:
    打开(结果文件“a”)作为rf:
    将打开的(错误文件“a”)作为ef:
    对于f.readlines()中的url:
    句柄\u url(url、rf、ef)
    
    您是否在调试器中对其进行了单步调试,以准确查看停止时发生的情况?在第一次请求之前,您的代码应该会因名称错误而失败。在循环中重复打开一个文件,而在循环之前只打开一次,这是一种不好的形式。