import requests import time import json headers = { "User-Agent": "Mozilla/5.0", "Accept-Language": "en-US,en;q=0.5", } while True: # 一直循环,知道访问站点成功 try: # 以下except都是用来捕获当requests请求出现异常时, # 通过捕获然后等待网络情况的变化,以此来保护程序的不间断运行 url='https://buff.163.com/goods/35245' response = requests.get(url, headers=headers, timeout=20) print(response.text) break except requests.exceptions.ConnectionError: print('ConnectionError -- please wait 3 seconds') time.sleep(3) except requests.exceptions.ChunkedEncodingError: print('ChunkedEncodingError -- please wait 3 seconds') time.sleep(3) except: print('Unfortunitely -- An Unknow Error Happened, Please wait 3 seconds') time.sleep(3) json_data = json.loads(response.text) #print(json_data) buff_price = json_data['data']['items'][0]['price'] print(buff_price.text)
时间: 2024-03-18 16:43:13 浏览: 125
requests-random-user-agent:配置请求库以随机选择桌面用户代理
在你的代码中,`json_data = json.loads(response.text)` 和 `buff_price = json_data['data']['items'][0]['price']` 这两行代码缩进太多了,导致它们出现在了循环的外面,因此当请求出现异常时,这两行代码将不会执行,而在没有响应的情况下,它们会引发异常。你需要将这两行代码缩进到循环内部,以确保只有在请求成功的情况下才会执行。另外,你最后打印 `buff_price` 的时候,应该是 `print(buff_price)` 而不是 `print(buff_price.text)`。
阅读全文