gpt4 book ai didi

Python Robotparser 超时等价物

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:11 24 4
gpt4 key购买 nike

Python 3.3.0 有没有办法设置 robotparser.read() 函数的超时时间?(比如在urllib.request urlopen中)

60 秒的默认超时有点过激。

(我正在自学 Python。)

Python 3.3.0 - robotparser

Python 3.3.0 - urllib.request

最佳答案

不,您必须使用 socket.setdefaulttimeout() 设置全局默认超时,或继承 RobotFileParser 类以添加自定义超时:

from urllib.robotparser import RobotFileParser
import urllib.request

class TimoutRobotFileParser(RobotFileParser):
def __init__(self, url='', timeout=60):
super().__init__(url)
self.timeout = timeout

def read(self):
"""Reads the robots.txt URL and feeds it to the parser."""
try:
f = urllib.request.urlopen(self.url, timeout=self.timeout)
except urllib.error.HTTPError as err:
if err.code in (401, 403):
self.disallow_all = True
elif err.code >= 400:
self.allow_all = True
else:
raw = f.read()
self.parse(raw.decode("utf-8").splitlines())

关于Python Robotparser 超时等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15235374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com