Я запускаю сценарий, который ищет фразу в Google, а затем открывает ссылки в окне Chrome. Я хочу исключить определенные доменные имена из результатов поиска, открываемых при запуске скрипта.
Может ли кто-нибудь указать мне в правильном направлении, чтобы я мог добавить код в нужное место, чтобы определенные ссылки не открывались? Пожалуйста, посмотрите код, который я использую прямо сейчас.
import webbrowser
import sys
import pyperclip
import requests
import bs4
def start():
if len(sys.argv) > 1:
keyword = 'my+search+term'.join(sys.argv[1:])
else:
# if no keyword is entered, the script would
# search for the keyword copied in the clipboard
keyword = pyperclip.paste()
res = requests.get('https://google.com/search?q='+keyword)
soup = bs4.BeautifulSoup(res.text,'lxml')
links = soup.select('.r a')
tab_counts = min(5, len(links))
for i in range(tab_counts):
webbrowser.open('https://google.com' + links[i].get('href'))
start()
Я хотел бы создать список доменных имен, которые я хочу исключить. Вы знаете какие-либо страницы или ресурсы, где я могу найти, как добавить это к приведенному выше сценарию? Я думаю, что RegEx немного переборщил с тем, что я пытаюсь сделать.






Извините, но не будет ли исключено все, что вы не ищете? Попробуйте это и посмотрите, сможете ли вы адаптировать его к вашим конкретным потребностям.
import urllib
from bs4 import BeautifulSoup
import requests
import webbrowser
text = 'hello world'
text = urllib.parse.quote_plus(text)
url = 'https://google.com/search?q=' + text
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
for g in soup.find_all(class_='g'):
print(g.text)
print('-----')
Вам нужно указать доменные имена, которые вы хотите исключить, я не вижу этого в вашем коде. У вас может быть список доменных имен, которые вы хотите исключить, а затем удалить их из ссылок перед открытием страниц. вы также можете использовать регулярное выражение. так что будьте немного яснее о том, что вы хотите сделать