У меня не работает ни библиотека запросов, ни библиотека PyPi. Я постоянно пытаюсь использовать селен и не могу получить результаты. Может ли кто-нибудь мне помочь? есть ли какая-нибудь библиотека, которую я не рассматриваю?
from pathlib import Path
import platform
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.firefox.service import Service as FirefoxService
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_all_elements_located
QUERY = input("Enter your Google search query: ")
base_dir = Path(__file__).resolve().parent
driver_path = base_dir.parent / "geckodriver.exe"
def run_with_selenium() -> bool:
options = FirefoxOptions()
options.add_argument("--headless")
service = FirefoxService(executable_path=str(driver_path))
driver = None
try:
driver = webdriver.Firefox(service=service, options=options)
driver.get("https://www.google.com/search?q=" + QUERY)
time.sleep(3)
# Extract search results using different selectors
results = []
# Try to find result containers
result_containers = driver.find_elements(By.CSS_SELECTOR, "div[data-sokoban-container]")
print(f"\nSearch Results for '{QUERY}':\n")
for idx, container in enumerate(result_containers[:10], 1): # Get top 10 results
try:
# Try to find title
title_elem = container.find_element(By.CSS_SELECTOR, "h3")
title = title_elem.text
# Try to find link
link_elem = container.find_element(By.CSS_SELECTOR, "a")
link = link_elem.get_attribute("href")
# Try to find snippet/description
snippet = ""
try:
snippet_elem = container.find_element(By.CSS_SELECTOR, "span[data-snippet]")
snippet = snippet_elem.text
except:
# Fallback: try to find any descriptive text
text_elems = container.find_elements(By.TAG_NAME, "span")
for elem in text_elems:
text = elem.text.strip()
if text and len(text) > 20 and len(text) < 500:
snippet = text
break
if title and link:
print(f"{idx}. {title}")
if link and "http" in link:
print(f" URL: {link}")
if snippet:
print(f" Description: {snippet}")
print()
results.append({"title": title, "url": link, "snippet": snippet})
except Exception as e:
continue
if results:
print(f"✓ Found {len(results)} results")
return True
else:
print("No results extracted, but page loaded successfully")
print(f"Page title: {driver.title}")
return True
except Exception as error:
print(f"Selenium error: {type(error).__name__}: {str(error)[:200]}")
return False
finally:
if driver is not None:
try:
driver.quit()
except:
pass
run_with_selenium()
Как мы можем сделать запрос в Python для поиска в Google? ⇐ Python
Программы на Python
-
Anonymous
1778740277
Anonymous
У меня не работает ни библиотека запросов, ни библиотека PyPi. Я постоянно пытаюсь использовать селен и не могу получить результаты. Может ли кто-нибудь мне помочь? есть ли какая-нибудь библиотека, которую я не рассматриваю?
from pathlib import Path
import platform
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.firefox.service import Service as FirefoxService
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_all_elements_located
QUERY = input("Enter your Google search query: ")
base_dir = Path(__file__).resolve().parent
driver_path = base_dir.parent / "geckodriver.exe"
def run_with_selenium() -> bool:
options = FirefoxOptions()
options.add_argument("--headless")
service = FirefoxService(executable_path=str(driver_path))
driver = None
try:
driver = webdriver.Firefox(service=service, options=options)
driver.get("https://www.google.com/search?q=" + QUERY)
time.sleep(3)
# Extract search results using different selectors
results = []
# Try to find result containers
result_containers = driver.find_elements(By.CSS_SELECTOR, "div[data-sokoban-container]")
print(f"\nSearch Results for '{QUERY}':\n")
for idx, container in enumerate(result_containers[:10], 1): # Get top 10 results
try:
# Try to find title
title_elem = container.find_element(By.CSS_SELECTOR, "h3")
title = title_elem.text
# Try to find link
link_elem = container.find_element(By.CSS_SELECTOR, "a")
link = link_elem.get_attribute("href")
# Try to find snippet/description
snippet = ""
try:
snippet_elem = container.find_element(By.CSS_SELECTOR, "span[data-snippet]")
snippet = snippet_elem.text
except:
# Fallback: try to find any descriptive text
text_elems = container.find_elements(By.TAG_NAME, "span")
for elem in text_elems:
text = elem.text.strip()
if text and len(text) > 20 and len(text) < 500:
snippet = text
break
if title and link:
print(f"{idx}. {title}")
if link and "http" in link:
print(f" URL: {link}")
if snippet:
print(f" Description: {snippet}")
print()
results.append({"title": title, "url": link, "snippet": snippet})
except Exception as e:
continue
if results:
print(f"✓ Found {len(results)} results")
return True
else:
print("No results extracted, but page loaded successfully")
print(f"Page title: {driver.title}")
return True
except Exception as error:
print(f"Selenium error: {type(error).__name__}: {str(error)[:200]}")
return False
finally:
if driver is not None:
try:
driver.quit()
except:
pass
run_with_selenium()
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Полная версия