在Python中,使用`requests`库进行网页请求时,可以通过设置`timeout`参数来模拟请求超时。`timeout`参数用于指定等待服务器响应的最长时间,如果在这段时间内服务器没有响应,请求就会抛出`Timeout`异常。
import requests
url = 'http://example.com' 需要爬取的网页地址
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} 请求头信息
设置超时时间为3秒
timeout = 3
尝试发送请求,如果超时则捕获异常并重试
for i in range(3): 最多重试3次
try:
response = requests.get(url, headers=headers, timeout=timeout)
if response.status_code == 200: 请求成功
print(response.text) 打印响应内容
break 退出循环
except requests.exceptions.Timeout:
print(f'请求超时,正在进行第 {i + 1} 次重试...') 超时重试提示
except requests.exceptions.RequestException as e:
print(f'请求发生错误:{e}') 其他请求异常处理
在这段代码中,我们设置了3秒的超时时间,并且尝试最多重试3次。如果请求在3秒内没有响应,就会捕获`Timeout`异常并打印出重试信息,然后进行下一次重试。如果所有重试都失败了,将会打印出请求发生错误的提示信息。
请注意,在实际应用中,您可能需要根据具体情况调整超时时间和重试次数。此外,如果目标网站有反爬虫机制,可能需要额外的处理,如设置合适的请求头、使用代理等。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/143046.html