Хорошо, вот пара вещей, которые здесь
часто поисковые системы увидят, что вы сталкиваетесь с чем-то, что он считает ботом. и откажется отвечать. проверьте, есть ли у поисковой системы средство вызова, которое поддерживается, и добавьте пользовательский агент в заголовок, который вы используете во время ваших запросов http
, есть лучший способ обработки строк запроса с использованием библиотеки запросов вместо конкатенации
Таким образом, часть кода request должна выглядеть примерно так:
import requests, sys, webbrowser
from bs4 import BeautifulSoup #save yourself on some unnecessary typing(and possible error) down the line
print('Searching...') # display text while downloading the search result page
parmas = {'q':sys.argv[1:]}
headers = {'user-agent':'Mozilla/5.0 (Linux; rv:1.0)'}
res = requests.get('https://www.duckduckgo.com/search, params=params, headers=headers)
res.raise_for_status()
Наконец, при работе с BeautifulSoup вы должны рассмотреть возможность использования синтаксический анализатор lxml
вместо html.parser
обычно работает быстрее, и вы захотите это при сканировании страницы