我正在尝试获取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。
答案 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个搜索结果描述中获取静态和动态链接。