点击使用python在mouthshut.com上点评“R more”按钮

时间:2017-05-29 18:39:38

标签: python beautifulsoup

我正在尝试滚动浏览http://www.mouthshut.com/mobile-operators/Reliance-Jio-reviews-925812061页面。我需要点击评论部分的“阅读更多”按钮,但我无法在python中使用美丽的汤找到它。

2 个答案:

答案 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. 步骤1:在Jupyter笔记本中使用以下命令安装硒:

    !pip安装硒

  2. 步骤2:由G_M执行上述代码:它向我显示了以下错误:

    WebDriverException:消息:“ chromedriver”可执行文件必须位于PATH中。请访问sites.google.com/a/chromium.org/chromedriver/home。

  3. 从错误消息中提供的链接下载了chromedriver:从上述链接下载了最新版本的chromedriver。这是一个zip文件。解压缩该文件,您将获得一个.exe文件,并将其上传到Jupyter笔记本运行时所在的位置/文件夹。

  4. 重新启动笔记本计算机。并再次执行代码。现在工作正常。

我正在使用此代码通过单击产品评论网页中的“阅读更多”链接来扩展评论。它的代码工作正常,除了第一个注释没有完全扩展。我不知道为什么,但是代码在其他注释上运行良好。