Я пишу программу, которая автоматически открывает вкладки некоторых браузеров с результатами поиска Google.Google всегда сначала отображает результаты покупок, затем отображает результаты, а затем ссылки на другие сайты.Я хотел бы получать только ссылки на другие веб-сайты, за исключением ссылок на карты и результатов покупок.
Я использовал инструмент разработчика, чтобы проверить эти ссылки, и все они кажутся частью элемента внутри элемента.Я пытался получить эти элементы с помощью метода select () с помощью селекторов CSS, но я не могу получить эти конкретные классы.
Я уже пробовал решения в других ответах на подобные вопросы здесь, но безуспешно.Затем я попытался с помощью регулярных выражений отфильтровать все ссылки, получая только ссылки, начинающиеся с "http://", как показано ниже:
import requests
import bs4
import re
# I'm using the word 'skateboard' to test
res = requests.get('http://google.com/search?q=skateboard')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, features='html.parser')
for links in soup.find_all('a', attrs={'href': re.compile("http://")}):
print(links.get('href'))
, но это возвращает только ссылки, связанные с картами Google. Было бы очень полезно, если выребята, есть идеи, как получить только те конкретные элементы, упомянутые ранее. Большое спасибо !!!