用Selenium在python中获取雅虎财经评论

2024-09-28 19:21:18 发布

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

这里是全新的,对python来说也是相对较新的。我正在编写代码,只从雅虎财经对话页面上获取评论。我从APPL页面(https://finance.yahoo.com/quote/AAPL/community/)开始。我正在使用Edge浏览器中的inspect element函数并找到了注释。示例注释:

 <div class="C($c-fuji-grey-l) Mb(2px) Fz(14px) Lh(20px)" data-reactid="44">$175 tomorrow vote up or not vote down ! I vote up</div>

我编写了以下基本代码来获取第一个注释(我不需要响应)。我想如果我能成功地得到一条评论,我就能得到所有的评论。我意识到我将不得不处理附加评论的加载,但是一步一步。在

^{pr2}$

我一直得到“无”作为输出。我不认为这里涉及javascript(我在HTML的底部看到了脚本标记,但没有看到注释)。我也不知道该怎么做。我怎样才能成功地删除这些评论?当然可以接受不同的解决方案,谢谢阅读。在

编辑11-7-17

我用selenium重新编写了程序,并得到了页面上出现的注释。我现在正在进行以下步骤:

1)让程序在刮取任何内容之前单击最新反应的下拉选项。在

2)让程序单击页面底部的“显示更多”按钮,以呈现更多的注释,以便进行刮削。我想刮过去一年的评论,但我没有看到任何真正的时间戳在html,只有“1天前”,“两天前”,等等。我想我可以尝试让程序不断地点击“显示更多”按钮,直到它到达第一个带有时间戳“1年前”的评论。在

3)刮取评论者用户名和评论日期。理想情况下,我希望将注释器用户名、注释日期和注释保存在文件中(csv或JSON可以)。在

我的代码是:

 from selenium import webdriver
 driver = webdriver.Chrome("C:/YOUR_PATH_HERE/chromedriver.exe")
 driver.get("https://finance.yahoo.com/quote/AAPL/community/")
 timeout=10
 comments = driver.find_elements_by_xpath("//div[@class='C($c-fuji-grey-l) Mb(2px) Fz(14px) Lh(20px)']")
 coments = [x.text for x in comments]
 print(len(coments))
 print(coments)

一如既往,任何帮助都是值得感激的。在


Tags: 代码httpscommunity程序divcomdriver评论