Обобщите запрос, используя даты. Так что для Google, в частности, вы можете иметь операторы диапазона для конкретных c даты.
Если ваша search
функция просто request.get('https://google.com/search?q={}'.format(q))
, вы можете использовать следующий код:
urls=[]
count=0
q='Brexit before:02-03-2018 after:02-02-2018'
for url in search(q):
r = requests.get(url, timeout=None)
r.status_code
count=count+1
urls.append(url)
Это решит проблему с датами. Для ошибки, я думаю, вы пытаетесь получить URL-адрес, где href
'___'. Это может быть просто плохая ссылка, поэтому я бы добавил только попытку, кроме блокировки и регистрации. Таким образом, я бы рассмотрел фильтрацию больше (используя BeautifulSoup
, чтобы получить только результаты. Поэтому код будет:
import request
from bs4 import BeautifulSoup
q='Brexit before:02-03-2018 after:02-02-2018'
req = request.get('https://google.com/search?q={}'.format(q), timeout=None)
soup = BeautifulSoup(req.content, 'html.parser')
hrefs = soup.find_all('a') # this is all the hrefs.
for href in hrefs:
try:
r = requests.get(url)
except Exception as e:
print(e)