Web scraping 如何将回退脚本插入到我的web刮片中

Web scraping 如何将回退脚本插入到我的web刮片中,web-scraping,exponential-backoff,retrying,Web Scraping,Exponential Backoff,Retrying,我想在我的网络爬网中使用“后退”包,但我无法让它工作。我应该在哪里插入它?如何让“r=请求…”仍然被识别 我尝试过以各种方式将语句放入代码中,但它不起作用。我希望能够将其用于软件包的预期用途。谢谢 要插入的代码 @backoff.on_exception(backoff.expo, requests.exceptions.RequestException, max_time=60) def get_url(

我想在我的网络爬网中使用“后退”包,但我无法让它工作。我应该在哪里插入它?如何让“r=请求…”仍然被识别

我尝试过以各种方式将语句放入代码中,但它不起作用。我希望能够将其用于软件包的预期用途。谢谢

要插入的代码

@backoff.on_exception(backoff.expo,
                      requests.exceptions.RequestException,
                      max_time=60)

def get_url(what goes here?):
    return requests.get(what goes here?)
现行守则:

import os
import requests
import re
import backoff

asin_list = ['B079QHML21']
urls = []
print('Scrape Started')
for asin in asin_list:
  product_url = f'https://www.amazon.com/dp/{asin}'
  urls.append(product_url)
  base_search_url = 'https://www.amazon.com'
  scraper_url = 'http://api.scraperapi.com'

  while len(urls) > 0:
    url = urls.pop(0)
    payload = {key, url}  #--specific parameters
    r = requests.get(scraper_url, params=payload)
    print("we got a {} response code from {}".format(r.status_code, url))
    soup = BeautifulSoup(r.text, 'lxml')

    #Scraping Below#

我希望“回退”代码能够按照代码中的设计工作,以重试500个错误,并且不会出现故障,而不是直接调用:

requests.get(scraper_url, params=payload)
get\u url
更改为执行此操作,然后调用
get\u url

@backoff.on_exception(backoff.expo,
                      requests.exceptions.RequestException,
                      max_time=60)

def get_url(scraper_url, payload):
    return requests.get(scraper_url, params=payload)
在您的代码中,而不是:

r = requests.get(scraper_url, params=payload)
做:


您好-在“现有代码”中,“要插入的代码”将放在哪里?您可以将其插入到行的上方print('Scrape start')谢谢!这让我非常感激,也非常欣慰。
r = get_url(scraper_url, payload)