xpath用于从腐烂的西红柿中刮取评论家的评论

2024-06-16 11:30:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从以下url获取审阅者姓名:https://www.rottentomatoes.com/m/avengers_endgame/reviews

目前,在我的输出中,除了审阅者的姓名和他们所代表的站点之外,我拥有一切。我很好奇是否有人知道我用来刮评论员和网站的xpath有什么问题。我不认为烂西红柿阻碍了我,因为所有其他信息都存在于我的数据框架中。他们来自的只是评论员和网站,而他们并不存在

以下是我用来获取审阅者和站点的代码:

reviewers = driver.find_elements_by_xpath('//*[@id="reviews"]/div[2]/div[4]/div[1]')
 for r in reviewers:
        names.append(r.find_element_by_xpath('//*[@id="reviews"]/div[2]/div[4]/div[' +str(reviewnum)+ ']/div[1]/div[3]/a[1]').text)
        sites.append(r.find_element_by_xpath('//*[@id="reviews"]/div[2]/div[4]/div[' +str(reviewnum)+']/div[1]/div[3]/a[2]/em').text)
        reviewnum+=1

我不完全确定这为什么不起作用。有人能告诉我我做错了什么吗

reviewnum只是一个迭代器

请让我知道如果你想看到更多的代码,如果这可能会有所帮助


Tags: 代码dividby站点网站elementfind
1条回答
网友
1楼 · 发布于 2024-06-16 11:30:59

您只需要遍历表中的行并打印每行中的子元素

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait

driver=webdriver.Chrome(executable_path='Your path to the driver')
driver.get("https://www.rottentomatoes.com/m/avengers_endgame/reviews")
# I wait until page is loaded
WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.CLASS_NAME, 'review_table')))



rows = driver.find_elements_by_xpath("//div[@class='row review_table_row']")
print(len(rows))

reviewername = []
reviewersite = []
for row in rows:
    reviewername.append(row.find_element_by_xpath("(.//div[contains(@class,'critic_name')]/a)[1]").text)
    reviewersite.append(row.find_element_by_xpath("(.//div[contains(@class,'critic_name')]/a)[2]").text)

print(reviewername)
print(reviewersite)

driver.quit()

输出:

二十

['Richard Propes', 'Kelechi Ehenulo', 'Victor Pineyro', 'Stephen A. Russell', 'Matt Cipolla', 'James Hanton', 'Jason Fraley', 'Steven Prokopy', 'Saibal Chatterjee', 'Zehra Phelan', 'Allen Almachar', 'Nabila Hatimy', 'Ricardo Gallegos', 'Doug Walker', 'Brent McKnight', 'Nikki Francisco', 'Damond Fudge', 'Yasser Medina', 'Alex Hudson', 'Dan Tabor']
['TheIndependentCritic.com', 'Confessions From A Geek Mind', 'Seventh Art Studio', 'The New Daily (Australia)', 'Film Monthly', 'Outtake Mag', 'WTOP (Washington, D.C.)', 'Third Coast Review', 'NDTV', 'Flavourmag', 'The MacGuffin', 'The Star (Kenya)', 'Pólvora', 'Channel Awesome', 'The Last Thing I See', 'Cosmopolitan (Philippines)', 'KCCI (Des Moines, IA)', 'Cinemaficionados', 'Exclaim!', 'Phawker']

相关问题 更多 >