Результаты печати Python, которые содержат определенную строку в нем - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь получить описание результата поиска Google.

from selenium import webdriver
import re
chrome_path = r"C:\Users\xxxx\Downloads\Compressed\chromedriver_win32\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get("https://www.google.co.in/search?q=stackoverflow")
posts = driver.find_elements_by_class_name("st")
for post in posts:
    print(post.text)

Здесь я получаю правильные результаты. Но я только хочу напечатать ссылки из описания. И хотите получить результаты с 5 поисковых страниц Google. Здесь я получаю только с 1 страницы.

Я пытался использовать

print(post.get_attribute('href'))

, но ссылки описания не активируются, поэтому возвращается None.

1 Ответ

0 голосов
/ 23 января 2019

Попробуйте следующий код:

for i in range(1, 6, 1):
    print("--------------------------------------------------------------------")
    print("Page "+str(i)+" Results : ")
    print("--------------------------------------------------------------------")
    staticLinks = driver.find_elements_by_xpath("//*[@class='st']")
    for desc in staticLinks:
        txt = desc.text+''
        if txt.count('http://') > 0 or txt.count('https://') > 0:
            for c in txt.split():
                if c.startswith('http') or c.startswith('https'):
                    print(c)

    dynamicLinks = driver.find_elements_by_xpath("//*[@class='st']//a")
    for desc in dynamicLinks:
        link = desc.get_attribute('href')
        if link is not None:
            print(link)
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    nextPage = driver.find_element_by_xpath("//a[@aria-label='Page "+str(i+1)+"']");
    nextPage.click();

Попытка получить статические и динамические ссылки из первых 5 описаний результатов поиска Google.

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