微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

刮烂番茄12年奴隶电影

如何解决刮烂番茄12年奴隶电影

我正在尝试从该页面获取收视率 https://www.rottentomatoes.com/m/12_years_a_slave(即 100,000+)使用 python selenium。 我尝试了各种硒定位器,但每次都出现 NoSuchElementException: 错误。 这是我的代码

import selenium
from selenium import webdriver

driver = webdriver.Chrome('path.exe')
url = 'https://www.rottentomatoes.com/m/12_years_a_slave'
driver.get(url)
    
def scrape_dom(element):
    shadow_root = driver.execute_script('return 
        arguments[0].shadowRoot',element)
    retuen shadow_root

host = driver.find_element_by_tag_name('score-board')
root_1 = scrape_dom(host)
views = root_1.find_element_by_link_text(
        '/m/12_years_a_slave/reviews?type=user&intcmp=rt-' + \
        'scorecard_audience-score-reviews')

我也试过 xpath,css_selector 但总是出错。你能告诉我我的代码有什么问题吗?

解决方法

一个简单的 CSS 选择器在这里工作。

from selenium import webdriver

driver = webdriver.Chrome()
url = 'https://www.rottentomatoes.com/m/12_years_a_slave'
driver.get(url)

print(driver.find_element_by_css_selector('a[slot=audience-count]').text)

我将 100,000+ Ratings 打印到我的控制台。

,

看看这个 xpath 是否有效:-

driver.find_element_by_xpath(".//a[@data-qa='audience-rating-count']").text
,

你不需要硒。您可以使用 requestsbs4。此外,您可以使用更快的 css 类选择器,而不是目前其他答案中给出的较慢的属性选择器。

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('https://www.rottentomatoes.com/m/12_years_a_slave')
soup = bs(r.content,'lxml')
soup.select_one('.scoreboard__link--audience').text

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。