我想从亚马逊抓取数据,请求重传错误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))
答案 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)