如何重置python请求并避免获取状态代码500

如何重置python请求并避免获取状态代码500,python,http,session,beautifulsoup,python-requests,Python,Http,Session,Beautifulsoup,Python Requests,我正试图从一个网站使用刮链接,一切顺利,直到我达到约510个请求,然后我开始得到状态代码500,然后状态代码414。如果我停止脚本,然后重新开始,它会再次发生 我正试图浏览汽车产品的网页,并保存所有汽车的链接。因为有一些小的URL更改,我只是增加了我想要链接的页面数量 import requests from bs4 import BeautifulSoup import time url = "http://www.olx.ba/pretraga?" kategorija = "kategor

我正试图从一个网站使用刮链接,一切顺利,直到我达到约510个请求,然后我开始得到状态代码500,然后状态代码414。如果我停止脚本,然后重新开始,它会再次发生

我正试图浏览汽车产品的网页,并保存所有汽车的链接。因为有一些小的URL更改,我只是增加了我想要链接的页面数量

import requests
from bs4 import BeautifulSoup
import time
url = "http://www.olx.ba/pretraga?"
kategorija = "kategorija=18"
vrsta = "vrsta=samoprodaja"
sacijenom = "sacijenom=sacijenom"

stranica = 1
links = []
file = open('olx_links.txt', 'w')
s = requests.session()
while True:
    url = url + kategorija + "&" + "stranica=" + str(stranica) + "&" + vrsta + "&" + sacijenom
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
    r = s.get(url, headers = headers)
    page_content = r.content.decode()
    soup = BeautifulSoup(page_content, "html.parser")
    articles = soup.find_all(class_="naslov")
    for link in articles:
        links.append("%s\n" % link.a["href"])
        file.write("%s\n" % link.a["href"])
    stranica += 1
    if r.status_code != 200: #this part is ineffective
        s = requests.session()
        time.sleep(10)
    print(stranica, len(links), r.status_code, r.cookies)
file.close()
这是我试图解决问题的部分

if r.status_code != 200: #this part is ineffective
    s = requests.session()
    time.sleep(10)
如果您想自己尝试代码,您需要大约3-4分钟来遇到问题

在508次请求之后,它开始提供以下输出:

507 14880 200 <RequestsCookieJar[]>
508 14910 200 <RequestsCookieJar[]>
509 14910 500 <RequestsCookieJar[]>
510 14910 500 <RequestsCookieJar[]>
511 14910 500 <RequestsCookieJar[]>
512 14910 500 <RequestsCookieJar[]>
513 14910 500 <RequestsCookieJar[]>
514 14910 500 <RequestsCookieJar[]>
515 14910 414 <RequestsCookieJar[]>
516 14910 414 <RequestsCookieJar[]>
517 14910 414 <RequestsCookieJar[]>
50714880200
508 14910 200 
509 14910 500 
510 14910 500 
511 14910 500 
512 14910 500 
513 14910 500 
514 14910 500 
515 14910 414 
516 14910 414 
517 14910 414 

然后继续414

当你收到500个错误时,错误信息是什么?@Enix根据w3.org,它是“服务器遇到了一个意外情况,使它无法满足请求。”如果有其他方法可以通过这个包详细了解错误信息,我希望你告诉我原谅我,但是它不是
请求。Session
而不是
请求。Session
?您是否尝试从
stranica=510
运行脚本。你有同样的错误吗?@SRC这也是一个奇怪的区别,我不明白。我两个都试过了,都没用。我第一次尝试的是requests.Session,但后来我发现只有requests.Session会问类似的问题,他们使用requests.Session当您收到500个错误时,错误消息是什么?@Enix根据w3.org,它是“服务器遇到了一个意外情况,使其无法满足请求。”如果有其他方法可以通过此软件包了解错误消息的详细信息,我希望您能告诉我,请原谅,但这不是
requests.Session
而不是
requests.Session
?您是否尝试从
stranica=510
运行脚本。你有同样的错误吗?@SRC这也是一个奇怪的区别,我不明白。我两个都试过了,都没用。我第一次尝试的是requests.Session,但后来我发现只有requests.Session会问类似的问题,他们使用requests.Session