Я работал над проектом для начинающих, где я в основном что-то ищу, и моя программа Python должна открыть эту конкретную страницу поиска Google, а также открыть первые 5 результатов поиска на разных вкладках. Для открытия веб-страницы / вкладок я использую модуль Webbrowser, а для определения того, какие URL-адреса результатов поиска необходимо открыть на других вкладках, я использовал Beautiful Soup для поиска ссылки.
args = ('+'.join(args)).lower()
google_url = f'https://www.google.com/search?q={args}'
webbrowser.open(google_url) #Opening the first Google search window
res = requests.get(google_url,timeout=5)
soup = BS(res.text,'lxml')
print(soup.prettify()) # HTML Code I used to select the tags
tab_urls = [] # Making a list of all URLs to be opened up
for data in soup.select("div[class = 'ZINbbc xpd O9g5cc uUPGi']"):
a_tag = data.select_one('a[href]')
if a_tag:
if a_tag['href'].startswith('/url?q='): # Figured that when HREF starts with '/url?' it will link to another website
new_url = a_tag['href'].replace('/url?q=','') # String formatting/operations to get the Tab link
new_url = new_url.split('%')[0] # String formatting/operations to get the Tab link
new_url = new_url.split('&')[0] # String formatting/operations to get the Tab link
tab_urls.append(new_url)
for url in range(min(len(tab_urls),3)):
webbrowser.open_new_tab(tab_urls[url]) # Opening up the Tabs
Код выше работает, и моя программа работает, НО при поиске точного тега, с использованием элемента Inspect, я заметил, что источник кода HTML отличается от HTML, который был возвращен мне в soup.prettify (). Как это может быть так? Мне пришлось полностью полагаться на возвращенный мне исходный код, и я не мог использовать инструменты разработчика браузера для помощи. Я прошу прощения, если я не объяснил эту проблему четко, пожалуйста, дайте мне знать, если необходимы дальнейшие разъяснения.
Заранее спасибо!