BeautifulSoup — замедляет запросы.get

#python-3.x #web-scraping #beautifulsoup

#python-3.x #очистка веб-страниц #beautifulsoup

Вопрос:

Надеюсь, у кого-нибудь есть ответ.

Я пытаюсь очистить конкретный веб-сайт.

Проблема в том, что requests.get(url) очищает все очень быстро.

Поэтому я заблокирован.

Является ли это способом замедления запросов.get (url)?

Спасибо за вашу помощь.

 from bs4 import BeautifulSoup
import requests
url = 'website.fr'
response = requests.get(url)
print(response)
 

Распечатать результат:
Когда вы использовали этот веб-сайт, что-то в вашем браузере или поведении заставило нас подумать, что вы, возможно, бот. Решите приведенную ниже капчу, чтобы продолжить просмотр сайта.

Ответ №1:

Вы должны настроить тайм-аут и посмотреть, работает ли скребок для вас.

 r = requests.get('https://github.com', timeout=5)
 

https://docs.python-requests.org/en/latest/user/advanced/#timeouts

Ответ №2:

Обратите внимание, что пока нет информации об URL, ее трудно воспроизвести

Первым подходом может быть добавление некоторых headers к вашему запросу — это не замедлит работу, а укажет, что «будет браузер». Альтернативный подход заключается в использовании selenium.

Пример

 from bs4 import BeautifulSoup
import requests
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36", 
    "X-Amzn-Trace-Id": "Root=1-61acac03-6279b8a6274777eb44d81aae", 
    "X-Client-Data": "CJW2yQEIpLbJAQjEtskBCKmdygEIuevKAQjr8ssBCOaEzAEItoXMAQjLicwBCKyOzAEI3I7MARiOnssB" }
url = 'https://www.france.fr/fr'
response = requests.get(url, headers = headers)
print(response)
 

Вывод

 <Response [200]>
 

Если вы повторяете URL-адреса, вы также можете добавить такую же задержку с time помощью модуля:

 from bs4 import BeautifulSoup
import requests, time

...

for url in urls:
    time.sleep(3)
    response = requests.get(url, headers = headers)
...
 

Комментарии:

1. Спасибо за вашу помощь. Есть ли способ узнать, какой заголовок отправляется в источнике?

2. Это всегда зависит от того, как вы взаимодействуете со страницей и как работает обнаружение ботов на сервере… Вы можете увидеть заголовки, которые отправляет ваш браузер, на вкладке сеть в ваших инструментах разработчика