Как я могу получить прямой URL от косвенного URL? Python webscraping - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь очистить URL-адреса на основе поисковых запросов Google. Однако URL-адрес, который я собираю, содержит стрелку и выглядит как страница перенаправления Google:

'uk.linkedin.com ›pauljgarner'

Что я хочу это прямая ссылка:

https://www.linkedin.com/in/pauljgarner/?originalSubdomain=uk

Вот мой код. Я не уверен, как изменить его, чтобы получить прямую ссылку. Я был бы очень признателен за вашу помощь.

from selenium import webdriver
driver = webdriver.Chrome('/Users/yu/Downloads/chromedriver')
driver.get('https:www.google.com')

##inputting google search##
search_query = driver.find_element_by_name('q')
search_query.send_keys(parameters.search_query)
search_query.send_keys(Keys.RETURN)

linkedin_urls = driver.find_elements_by_xpath(".//div[@class='TbwUpd NJjxre']")
linkedin_urls = [url.text for url in linkedin_urls]

for linkedin_url in linkedin_urls:
    driver.get(linkedin_url) 
    ##getting an error on this line (likely because the url is a redirect)

linkedin_url

Я видел несколько постов о преобразовании ссылки перенаправления в прямую ссылку с помощью надстроек (Grease Monkey), но не понял, как их использовать. Предпочел бы ответ, который я мог бы изменить код (если это возможно). Спасибо

1 Ответ

0 голосов
/ 20 февраля 2020

После нахождения соответствующих элементов, почему бы вам не использовать get_attribute () , чтобы найти ссылку href. Вы можете просто использовать, если вы просто хотите первый URL:

linkedin_urls=driver.find_elements_by_xpath('//*[@id="rso"]/div[1]/div/div/a')
linkedin_urls=[url.get_attribute('href') for url in linkedin_urls]

, если вы хотите, чтобы все URL:

linkedin_urls=driver.find_elements_by_xpath('//*[@id="rso"]/div/div/div/a')
linkedin_urls=[url.get_attribute('href') for url in linkedin_urls]

get_attribute () в Python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...