Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.support.ui import WebDriverWait
- from selenium.webdriver.support import expected_conditions as EC
- from bs4 import BeautifulSoup
- import requests
- # Ustawienia dla WebDrivera Chrome
- options = webdriver.ChromeOptions()
- options.binary_location = '' # Możesz też zostawić to puste, jeśli chromedriver znajduje się w PATH
- # Inicjalizacja WebDrivera Chrome
- driver = webdriver.Chrome(options=options)
- # Otwarcie strony Google
- google_url = 'https://www.google.com/'
- driver.get(google_url)
- # Zamknięcie okna consent cookies, jeśli się pojawi
- try:
- WebDriverWait(driver, 3).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#L2AGLb'))).click()
- except TimeoutException:
- print("Okno consent cookies nie pojawiło się lub nie można było je zamknąć.")
- # Wprowadzenie frazy wyszukiwania i przejście do wyników
- search_box = driver.find_element(By.NAME, 'q')
- search_box.send_keys('nike') # Poprawione wpisanie frazy
- search_box.submit()
- # Poczekaj na reklamy w bloku cu-container przez 10 sekund
- try:
- WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.cu-container, .top-pla-group-inner')))
- except TimeoutException:
- print("Nie znaleziono reklam na stronie.")
- driver.quit()
- exit()
- # Znajdź reklamy
- ads_text = driver.find_elements(By.CSS_SELECTOR, '.ptJHdc')
- ads_pla = driver.find_elements(By.CSS_SELECTOR, '.mnr-c.pla-unit')
- # Jeśli znaleziono reklamy, wyświetl ich tytuły i przejdź do linków docelowych
- if ads_text or ads_pla:
- print("Znaleziono reklamy na stronie.")
- for index, ad in enumerate(ads_text):
- try:
- title = ad.find_element(By.CSS_SELECTOR, '.jOmXmb.SwlyWb').text
- print(f"Tytuł reklamy {index + 1}: {title}")
- # Pobierz link docelowy reklamy bez klikania
- ad_link_element = ad.find_element(By.TAG_NAME, 'a')
- ad_link = ad_link_element.get_attribute('href')
- print(f"Link docelowy reklamy {index + 1}: {ad_link}")
- # Śledzenie przekierowania do bezpośredniego URL
- if ad_link and 'aclk' in ad_link:
- response = requests.get(ad_link, allow_redirects=True)
- final_url = response.url
- print(f"Bezpośredni link docelowy {index + 1}: {final_url}")
- else:
- print(f"Nie znaleziono bezpośredniego linku docelowego {index + 1}.")
- # Wyodrębnij informacje o reklamodawcy bez przechodzenia do linku
- soup = BeautifulSoup(ad.get_attribute('innerHTML'), 'html.parser')
- advertiser_info = soup.find('span', {'class': 'x2VHCd OSrXXb eDr7tb'})
- if advertiser_info:
- advertiser = advertiser_info.get_text().strip()
- print(f"Reklamodawca {index + 1}: {advertiser}")
- else:
- print(f"Nie znaleziono informacji o reklamodawcy {index + 1}.")
- except Exception as e:
- print(f"Błąd podczas przetwarzania reklamy {index + 1}: {str(e)}")
- for index, ad in enumerate(ads_pla):
- try:
- title = ad.get_attribute('data-dtld')
- print(f"Tytuł reklamy PLA {index + 1}: {title}")
- # Pobierz link docelowy reklamy bez klikania
- ad_link_element = ad.find_element(By.TAG_NAME, 'a')
- ad_link = ad_link_element.get_attribute('href')
- print(f"Link docelowy reklamy PLA {index + 1}: {ad_link}")
- # Śledzenie przekierowania do bezpośredniego URL
- if ad_link and 'aclk' in ad_link:
- response = requests.get(ad_link, allow_redirects=True)
- final_url = response.url
- print(f"Bezpośredni link docelowy PLA {index + 1}: {final_url}")
- else:
- print(f"Nie znaleziono bezpośredniego linku docelowego PLA {index + 1}.")
- # PLA reklamy mogą mieć inne informacje o reklamodawcy
- print(f"Reklamodawca PLA {index + 1}: Brak dostępnej informacji")
- except Exception as e:
- print(f"Błąd podczas przetwarzania reklamy PLA {index + 1}: {str(e)}")
- else:
- print("Nie znaleziono reklam na stronie.")
- # Zamykanie przeglądarki
- driver.quit()
Advertisement
Add Comment
Please, Sign In to add comment