我正在尝试滚动浏览http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061页面。我需要点击评论部分的“阅读更多”按钮,但我无法在python中使用美丽的汤找到它。
答案 0 :(得分:1)
BeautifulSoup可以解析html,但无法点击链接。 Selenium可以点击链接。
from time import sleep
from selenium import webdriver
url = 'http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061-page-{}'.format
driver = webdriver.Chrome()
driver.get(url(1))
for elem in driver.find_elements_by_link_text('Read More'):
elem.click()
sleep(0.5)
with open('page_source.html', 'w') as f:
f.write(driver.page_source)
driver.close()
从每个页面保存源html后,您可以使用BeautifulSoup解析它并提取您想要的任何内容。
编辑:点击每个链接后添加sleep(0.5)
似乎摆脱了某些“阅读更多”链接未被点击的错误。
答案 1 :(得分:0)
试图运行G_M建议的代码,但出现错误。但是可以通过以下步骤解决它:
平台:使用Windows 10,Anaconda-Jupyter Notebook,Chrome浏览器。
步骤1:在Jupyter笔记本中使用以下命令安装硒:
!pip安装硒
步骤2:由G_M执行上述代码:它向我显示了以下错误:
WebDriverException:消息:“ chromedriver”可执行文件必须位于PATH中。请访问sites.google.com/a/chromium.org/chromedriver/home。
从错误消息中提供的链接下载了chromedriver:从上述链接下载了最新版本的chromedriver。这是一个zip文件。解压缩该文件,您将获得一个.exe文件,并将其上传到Jupyter笔记本运行时所在的位置/文件夹。
重新启动笔记本计算机。并再次执行代码。现在工作正常。
我正在使用此代码通过单击产品评论网页中的“阅读更多”链接来扩展评论。它的代码工作正常,除了第一个注释没有完全扩展。我不知道为什么,但是代码在其他注释上运行良好。