#python #selenium-webdriver #web-scraping #urllib
#python #selenium-webdriver #очистка веб-страниц #urllib
Вопрос:
Я пытаюсь отправить поисковый запрос в Google и извлечь только первый найденный результат. Мне нужен только URL. Вот пример того, что я пробовал до сих пор, но по какой-то причине я не могу получить значение href.
import requests
from bs4 import BeautifulSoup
import xlwt
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from urllib.parse import urlparse
name = "Joe Sample"
search_query = 'string of info ' name ' more info'
driver = webdriver.Firefox(executable_path="geckodriver")
driver.get("https://www.google.com")
driver.find_element_by_name('q').send_keys(search_query)
time.sleep(2)
driver.find_element_by_xpath('//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]').send_keys(Keys.ENTER)
results = driver.find_elements_by_xpath('/html/body/div[7]/div[2]/div[10]/div[1]/div[2]/div/div[2]/div[2]/div/div/div[1]/div/div[1]/div/div[2]/span/div/ol/li/a')
href = results.get_attribute('href')
print(urlparse.parse_qs(urlparse(href).query)['q'])
Первая половина кода работает правильно, проблема заключается в поиске первой ссылки — и захвате только URL.
Ответ №1:
Я предполагаю, что это должно быть href = results[0].get_attribute(“href”)