首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中从Google功能中提取文本?

如何在Python中从Google功能中提取文本?
EN

Stack Overflow用户
提问于 2018-07-11 09:58:05
回答 1查看 365关注 0票数 1

我所说的谷歌功能是指,例如,当你在谷歌上输入“我感到好奇”,第一个结果是一个随机的事实,之后你就会得到基本的结果。我要做的是在Python中提取随机数的文本。我尝试使用requestsbs4库。我注意到在requests库中找不到随机事实特性。

有没有其他的方法来提取文本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-11 16:33:18

可以使用Selenium WebDriver和Python通过UI提取文本。但是,选择器并不稳定,因为每次加载页面时都会更改类名。例如,获取问题文本的xpath将类似于//*[@id="rso"]/div/div/div/div/div/div/div/div/div[1]/div

顺便说一句,这是可能的。请看下面的示例:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_experimental_option("prefs", {"profile.default_content_setting_values.notifications": 2})
browser = webdriver.Chrome(chrome_options=chrome_options)

browser.get("https://www.google.com")
search_box= browser.find_element_by_id("lst-ib")
search_box.send_keys("I'm feeling curious")
search_box.submit()
wait = WebDriverWait(browser, 5)
question = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="rso"]/div/div/div/div/div/div/div/div/div[1]/div')))
answer = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="rso"]/div/div/div/div/div/div/div/div/div[2]/div')))
from time import sleep
count = 3
while not answer.text:
    if not count: break
    sleep(1)
    answer = browser.find_element_by_xpath('//*[@id="rso"]/div/div/div/div/div/div/div/div/div[2]/div')
url = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="rso"]/div/div/div/div/div/div/div/div/div/p/a'))).get_attribute('href')

print('Question: {} \nAnswer: {}\nUrl: {}'.format(question.text, answer.text, url))

如果安装了Selenium,则可以运行此代码;如果需要,还可以运行其他依赖项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51276179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档