如何在Python中使用Selenium访问div标签中的文本?

问题描述 投票:0回答:2

[我正在尝试使用Selenium在Python中创建一个程序,该程序打印出https://www.brainyquote.com/quote_of_the_day的引号

编辑:我能够像这样访问报价和相关作者:

    authors = driver.find_elements_by_css_selector("""div.col-xs-4.col-md-4 a[title="view author"]""") 
for quote,author in zip(quotes,authors): 
        print('Quote: ', quote.text) 
        print('Author: ', author.text)

无法类似地组织主题。正在执行

total_topics = driver.find_elements_by_css_selector("""div.col-xs-4.col-md-4 a.qkw-btn.btn.btn-xs.oncl_list_kc""")

将列出不需要的清单

以前我使用的是Beautiful Soup,它的功能非常出色,除了请求库只能访问静态网站这一事实。但是,我希望能够不断滚动网站以保持访问新报价。为此,我正在尝试使用Selenium。

这是我用汤做的方式:

for quote_data in soup.find_all('div', class_='col-xs-4 col-md-4'):  
       quote = quote_data.find('a',title='view quote').text 
       print('Quote: ',quote)

但是,我无法使用Selenium找到相同的内容。我在Selenium中用于基本测试的代码:

driver.maximize_window() 
driver.get('https://www.brainyquote.com/quote_of_the_day') 
elem = driver.find_element_by_tag_name("body")

elem.send_keys(Keys.PAGE_DOWN) 
time.sleep(0.2) 

quote = driver.find_element_by_xpath('//div[@title="view quote"]')

我也尝试过CSS选择器

print(driver.find_element_by_css_selector('div.col-xs-4 col-md-4')

后者给出了NoSuchElementFound异常,而前者根本没有给出任何输出。我希望获得一些提示,以了解我要去哪里以及如何解决此问题。

谢谢!

python selenium css-selectors
2个回答
0
投票
quotes = driver.find_elements_by_xpath('//a[@title="view quote"]')
首先滚动到底部

0
投票
您可能需要编写某种循环来滚动并单击引号链接,直到找不到更多元素。这是我将如何操作的概述:
© www.soinside.com 2019 - 2024. All rights reserved.