错误请求返回响应[503]如果LINK链接死掉或LINK live。我使用bs4 python

时间:2018-11-16 02:27:46

标签: python-3.x beautifulsoup python-requests amazon

我想从亚马逊抓取数据,请求重传错误503,404,200,然后我将检查链接是否死亡或存在。但是当前的链接死掉或链接处于活动状态或找不到链接将重发503.我不知道如何检查链接。如果重发200,则将清除我的软件。感谢您的帮助!!!!

link = "https://www.amazon.com/dp/B07K896272"enter code here
browser = webdriver.Firefox(executable_path=r'D:\PythonTool\AmzTool\geckodriver.exe')
browser.get(link)
res = requests.get(str(link).strip())
print(str(res))

1 个答案:

答案 0 :(得分:1)

如果将字符串硬编码为变量链接,则无需将其强制转换为类型str。

requests.get(link) // is good enough.

此外,如果要打印响应内容,

print(res.text)

不是很了解这个问题,但是 您可以通过以下方式查看响应状态:

res = requests.get(link)
if res.status_code:
    #Bad Code - 400s/500s

else:
    #All good

此外,某些网站不允许请求。您可以通过在用户代理中添加标头来尝试变得更加“人性化”,并使用会话。会话将保留cookie。 (有点使它有状态)

session = requests.session()
session.headers['User-Agent'] = "YOUR USER AGENT HERE"
session.get("https://www.amazon.com/")

res = session.get(link)
print(res.text)

某些网站需要使用javascript来加载页面。如果是这样,您将要使用硒。使用请求将不会加载javascript页面。

或者如果您想首先使用javascript加载页面,并希望使用请求:

session = requests.session()
session.headers['User-Agent'] = "YOUR USER AGENT HERE"
browser = webdriver.Firefox(executable_path=r'D:\PythonTool\AmzTool\geckodriver.exe')
browser.get(link)
for cookie in driver.get_cookies():
    c = {cookie['name']: cookie['value']}
    session.cookies.update(c)
browser.close()
res = session.get(link)
print(res.text)