如何解决刮烂番茄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
,
你不需要硒。您可以使用 requests
和 bs4
。此外,您可以使用更快的 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 举报,一经查实,本站将立刻删除。