Python打印结果中包含特定的字符串

时间:2019-01-23 17:22:23

标签: python selenium selenium-chromedriver

我正在尝试获取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搜索页面中获取结果。 在这里,我只能从一页开始。

我尝试使用

print(post.get_attribute('href'))

但是描述链接不可单击,因此返回None。

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

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();

将尝试从Google的前5个搜索结果描述中获取静态和动态链接。