【问题标题】:How to fix urllib.error.HTTPError: HTTP Error 429: Too Many Requests如何修复 urllib.error.HTTPError:HTTP 错误 429:请求过多
【发布时间】:2021-05-06 12:21:28
【问题描述】:

我使用此代码从预订网站获取有关酒店的描述。

代码:

from flask import Flask, request, jsonify, Response
from functools import wraps
from geopy.geocoders import Nominatim
import requests
from bs4 import BeautifulSoup
from googlesearch import search
flask = Flask(__name__)
@flask.route('/hotel', methods=['POST'])
@requires_auth
def postJsonHandler():
   query = "www.booking.com/hotel/eg/" + data['Hotel Name']
        print(query)
        for j in search(query, tld="co.in", num=1, stop=1):
            print(j)
            r = requests.get(j)
            soup = BeautifulSoup(r.text, "lxml")
            answ = soup.find("div", {"id": "property_description_content"}).text
            print(answ)
        result = ('Hotel Name: ' + data['Hotel Name'], "latitude: " + str(loc.latitude), "longitude: " + str(loc.longitude), "Address: " + str(loc.address), "Description: " + answ)
        return jsonify(result), 200

但我得到这个错误:

urllib.error.HTTPError:HTTP 错误 429:请求过多。

请问有什么帮助吗?

【问题讨论】:

    标签: python python-3.x urllib booking.com-api


    【解决方案1】:

    您向远程服务器发出的请求过多,该服务器现在完全拒绝您的请求,以保护自己免受潜在的 DDoS 攻击。

    所以解决方案是(很可能)等到远程服务器原谅你的违规行为...

    【讨论】:

      【解决方案2】:

      我通过set解决了这个错误:

      time.sleep(1)
      

      for循环之前

      【讨论】:

        【解决方案3】:

        向请求标头添加用户代理可以解决您的问题。

        【讨论】:

          猜你喜欢
          • 2020-11-10
          • 2019-10-04
          • 2020-04-24
          • 2014-05-12
          • 2019-11-05
          • 1970-01-01
          • 2020-05-26
          • 1970-01-01
          相关资源
          最近更新 更多