ERROR запрашивает возврат Response [503] Если ссылка LINK умирает или LINK работает. Я использую bs4 python - PullRequest
0 голосов
/ 16 ноября 2018

Я хочу сканировать данные из Амазонки, запрашивает ошибку респона 503,404,200, затем я проверю ссылку умереть или жить. Но текущая ссылка умирает или ссылка активна, или ссылка не найдена, переделает 503. Я не знаю, как проверить ссылку? СПАСИБО, ПОМОГИТЕ МНЕ !!!!

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 голосов
/ 20 ноября 2018

Если вы жестко закодировали строку в переменную ссылку, вам не нужно приводить ее к типу 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

Кроме того, некоторые сайты не разрешают запросы.Вы можете попытаться быть более «человечным», добавив заголовки с помощью user-agent, а также используйте сеанс.Сессия сохранит куки.(вроде как с указанием состояния)

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)
...