我没有从下面的迭代中获得预期的结果。问题是 browser.find_element_by_xpath 函数(下面代码的第四行)中的迭代值未更新。它总是产生第一个结果。请注意,通过依次将值1,2,3,4分配给变量review_num而不是使用参数+ str(review_num)
来手动运行迭代时,可以得到预期的结果。 review_num = 0
for review_num in range(216): # for every review
review_num = review_num + 1
fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div["+ str(review_num)"]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[1]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[2]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[3]')
#fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div[4]')
R_title = fixedelement.find_element_by_xpath('./h4')
R_author = fixedelement.find_element_by_xpath('./div[2]/p[1]/span')
R_stars = fixedelement.find_element_by_xpath('./div[1]/div[1]/div[1]/span')
R_date = fixedelement.find_element_by_xpath('./div[1]/div[1]/div[2]/small')
R_comment = fixedelement.find_element_by_xpath('./div[1]/div[3]')
R_Yesvotes = fixedelement.find_element_by_xpath('./div[2]/div/div[1]/a[1]/span')
R_Novotes = fixedelement.find_element_by_xpath('./div[2]/div/div[1]/a[2]/span')
R_title_text = R_title.text
R_author_text = R_author.text
R_stars_text = R_stars.text
R_date_text = R_date.text
R_comment_text = R_comment.text
R_Yesvotes_text = R_Yesvotes.text
R_Novotes_text = R_Novotes.text
print(R_author_text)
with open(csvfile, "a", newline='', encoding='utf-8') as output:
writer = csv.writer(output, dialect='excel')
# writer.writerow(["namerow_id", "Name", "Position_Location"])
writer.writerow([review_num, R_title_text, R_author_text, R_stars_text, R_date_text, R_comment_text, R_Yesvotes_text, R_Novotes_text])
答案 0 :(得分:2)
在线
mean.binaryproto
您要搜索xpath等于
的元素fixedelement = browser.find_element_by_xpath('//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div["+ str(review_num)"]')
将'//*[@id="collapseReviews"]/div/div[2]/div[2]/div[1]/div["+ str(review_num)"]'
硬编码到xpath中。
您想做类似的事情
"str(review_num)"